8086汇编语言指令(27)ASCII 码加调整指令AAA

ASCII--BCD码运算调整指令

这组指令的使用率较低,可以根据需要有选择性地学习

例5.21 编写一段程序,完成二个15位十进制数X和Y之和,并把计算结果存入X之中。假设数据X和Y都是以字符串形式表示的。

解:

 

 

 

 

 

 

 

X

db "456407983123186"

;任意假设二个15位的大数

 

Y

db "326676709587211"

 

 

 

 

 

CLC

 

 

 

MOV

SI, 14

;用变址寄存器SI来从字符串的后面向前访问

 

MOV

CX, 15

;因为它们是二个15位十进制数

loop1:

MOV

AL, X[SI]

 

 

ADC

AL, Y[SI]

;把被加数加上

 

AAA

 

 

 

MOV

X[SI], AL

 

 

DEC

SI

 

 

LOOP

loop1

;15位十进制数相加完毕

 

LEA

BX, X

;下面5条指令是把X中的数据变成对应的字符

 

MOV

CX, 15

 

loop2:

ADD

byte ptr [BX], '0'

 

 

INC

BX

 

 

LOOP

loop2

 

 

 

 

从上例可以看出,其实任意位的十进制数也都是可以的,只要改变CX的值即可。


请使用浏览器的分享功能分享到微信等