4.2.2 顺序程序设计实例
【例4-1】 已知Z=(X+Y)-(W+Z),其中X,Y,Z,W均为用压缩BCD码表示的数,写出程序。
分析 这是一种典型的直线程序,在这里要注意是BCD数相加,要进行十进制调整。具体程序如下:
CODE SEGMENT
ASSUME CS:CODE
START:MOV AL,Z
MOV BL,W
ADD AL,BL
DAA;十进制调整
MOV BL,AL;BL=(W+Z)
MOV AL,X
MOV DL,Y
ADD AL,DL;AL=(X+Y)
DAA;十进制调整
SUB AL,BL;AL=(X+Y)-(Z+W)
DAS;十进制调整
MOV Z,AL;结果送Z
MOV AH,4CH;返回DOS
INT 21H
CODE ENDS
END START
【例4-2】 利用查表法计算平方值。已知0~9的平方值连续存在以TAB开始的存储区域中,求BUF单元内容X的平方值,并放在BUF1单元中。假定0≤X≤9且为整数。
分析:建立平方表,通过查表完成。
DATA SEGMENT
BUF DB X
BUF1 DB ?
TAB DB 0,1,4,9,16,25,36,49,64,81;0~9的平方表
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX;为DS送初值
LEA BX,TAB;取TAB表的偏移地址
MOV AH,0
MOV AL,BUF
ADD BX,AX
MOV AL,[BX];取第X项的值
MOV BUF1,AL;结果送BUF1单元
MOV AH,4CH;返回DOS
INT 21H
CODE ENDS
END START
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。