汇编程序设计 练习

5个字节求和放AX中

注意  字节8位   AX是16位    8位进位,会吞掉AH的内容,所以要在后面加上ADC进位的

MOV AX,0 ;MOV AH,0
CLD ;  CF = 0

MOV AL,12H
MOV BL,34H
ADD AL,BL    ; AL = AL+BL          
ADC AH,0    ;ADD AH + 0 + CF

ADD AL,56H;
ADC AH,0

ADD AL,78H
ADC AH,0

ADD AL,9AH
ADC AH,0
;只要有进位CF=1,AH就加上    
; AX = 01AEH

注意加法,8位 结果保存在 AL中        16位保存在AX中?

五个序数求和

1+2+3+4+5    结果放到AL中

简单的

MOV AX,0
MOV AL,1
MOV BL,2

ADD AL,BL   ;AL = 1+2
INC BL      ;BL = 3

ADD AL,BL    ;AL = 3+3    
INC BL         ;4

ADD AL,BL      
INC BL      ;5            
                  
ADD AL,BL  

循环版

MOV AX,0
MOV AL,1
MOV BL,2

MOV CX,4

L1:
ADD AL,BL   ;AL = 1+2
INC BL      ;BL = 3
LOOP L1

4次循环,因为 在LOOP前,已经加过一次了

内存单元BUF中5个数求和

假设内存单元中

DATA SEGMENT
    BUF DB 12H,56H,98H,69H,9BH
DATA ENDS
CODE SEGMENT
    ASSUME DS:DATA,CS:CODE

    
START:
LEA BX,BUF

MOV AX,0
MOV AL,[BX]
INC BX      ;MOV AL,[BX+1]  56H
ADD AL,[BX]

INC BX       ;  98H
ADD AL,[BX];       

INC BX       ;  69H
ADD AL,[BX]; 

INC BX       ;  9BH
ADD AL,[BX]  

CODE ENDS
END START

程序有点问题,思路大概是这样,

判断AL中是否为 奇偶

这里我们用到JZ  和  JNZ     以及  TEST指令 与
       注意要分清楚 JNZ  是ZF=0  说明结果不为0  

          JZ说明 ZF=1 跳转   结果为0

最后一位 D0位 ,  1表示奇地址  0表示偶地址,  

和1与,如果是1就是奇地址        如果是0就是偶地址

TEST AL,01H

JNZ L1:     
.... 
....
L1:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值