第六章 汇编语言程序设计().ppt
文本预览下载声明
第六章 汇编语言程序设计;6-1 汇编语言程序设计步骤;流程图构成部件:;S1;此题可否这样做?为什麽?
MOV AX, DS:[1000H]
ADD AX, DS:[1010H]
DAA
MOV DS:[1020H], AX
;法1:
MOV AL, DS:[1000H]
ADD AL, DS:[1010H] ;低字节相加
DAA ;十进制调整
MOV DS:[1020H], AL ;存低字节和
MOV AL, DS:[1001H]
ADC AL, DS:[1011H] ;高字节带进位相加
DAA ;十进制调整
MOV DS:[1021H], AL ;存高字节和;法2:
MOV SI,1000H
MOV DI,1010H
MOV BX,1020H
MOV AL, [SI]
ADD AL, [DI] ;低字节相加
DAA ;十进制调整
MOV [BX], AL ;存低字节和
MOV AL, [SI+1]
ADC AL, [DI+1] ;高字节带进位相加
DAA ;十进制调整
MOV [BX+1], AL ;存高字节和;例2、拆字。将1000H单元的内容拆成两段。每段四位存入其后的单元中。 (低位在前,高位在后)
; MOV AL , [SI] ;AL=38H
MOV CL , 4
SHR AL , CL ; AL=03H
MOV [SI+2] , AL ;[1002H]=03H
HLT;6-3 查表程序;法1:;MOV AX,2000H
MOV DS,AX ;建立段地址
MOV BX,1080H ;建立表首址(基地址)
MOV SI,1000H
MOV AL,[SI] ;取BCD数
XLAT ;AL?[BX+AL]
MOV [SI+1],AL
HLT
设:AL=5
[BX+AL]=[1080H+5]=[1085H]= 25H;例2、将AL的1位十六进制数(低位)转换为ASCII码;6-4 分支程序;例1、将AX中存放的无符号数除以2。(如果是奇数则加1后除以2)
; TEST AX,01H ;测试AX的D0位
JZ E1 ;D0=0,则ZF=1,AX是偶数,程序转移E1
ADD AX,1 ;否则AX为奇数,加1
E1: SHR AX,1 ;AX←AX÷2
HLT;法2:将最低位用移位指令移至进位标志,判断进位标志是0,AX就是偶数;否则,为奇数;法3:将最低位用移位指令移至最高位(符号位),判断符号标志是0,AX就是偶数;否则,为奇数。;例2、 求两无符号数(分别存于AX、BX)中的
较大值,存WMAX。;P141例6.3
CLC
SUB AX,BX
JC AA
MOV DI, 2800H
MOV [DI],AX
HLT
AA: SUB BX,AX
MOV DI, 2800H
MOV [DI],BX
HLT;改: CLC
CMP AX,BX
JC AA
SUB AX,BX
MOV DI, 2800H
MOV [DI],AX
HLT
AA: SUB BX,AX
MOV DI, 2800H
MOV [DI],BX
HLT ;X=0?;SYMB: MOV AL,BL ;取X
ADD AL,0
JZ STOR ;X=0,Y=X
TEST AL,80H
JNZ MINUS ;X<0
MOV AL, 1 ;X>0,Y=+1
JMP
显示全部