|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- assume cs:code
- a segment
- db 1,2,3,4,5,6,7,8
- a ends
- b segment
- db 1,2,3,4,5,6,7,8
- b ends
- d segment
- db 0,0,0,0,0,0,0,0
- d ends
- code segment
- start: mov ax,d
- mov ss,ax
- mov ax,a
- mov ds,ax
- mov ax,b
- mov es,ax
- sub ax,ax
- sub bx,bx
- sub dx,dx
- mov cx,8
- s: mov al,ds:[bx]
- mov dl,es:[bx]
- add al,dl
- mov ss:[bx],al
- inc sp
- inc bx
- loop s
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
这段代码要实现的功能是:将a段的数和b段的数依次相加,结果储存在d段
这是循环的第一次执行结果
如图所示 第一次循环执行后,a段的数被写到d段的第0个内存单元中
这是循环的第二次执行
如图所示 第二次循环后,d段0的数被其他数覆盖.
求解,为什么只要第26行将sp自加就会覆盖 |
|