帮忙看个程序的执行结果

来源:百度知道 编辑:UC知道 时间:2024/06/18 03:35:39
下列程序执行到EXIT时,字节单元A、B、C3、C3+1、C3+2中的内容各是什么?
;程序如下:
.MODEL SMALL
.STACK
.DATA
A DB 0
B DB 0
C3 DB 30,40,50
.CODE
.STARTUP
MOV AL, C3+1
ADD AL, C3
MOV A, AL
MOV AL, C3+1
ADD AL, C3+2
MOV B, AL
ADD C3,10
ADD C3+1, 20
ADD C3+2, 30
.EXIT 0
END

;结果: 5A 28 3C 50 03
为什么是以上结果?

C3+1等表示的是地址值,如C3=30,C3+1=40,C3+2=50,注释如下:
MOV AL, C3+1 ;AL=40
ADD AL, C3 ;AL=30+40=70
MOV A, AL ;A=70
MOV AL, C3+1 ;AL=40
ADD AL, C3+2 ;AL=50+40=90
MOV B, AL ;B=90
ADD C3,10 ;C3=30+10=40
ADD C3+1, 20 ;C3+1=20+40=60
ADD C3+2, 30 ;C3+2=50+30=80
.EXIT 0
END
结果貌似不对,可能是初始化的问题。