马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 17066038 于 2016-7-25 17:37 编辑
我练习实验五(6)的代码编写,为何在sub bx,2处执行了预料之外的结果
我的思路是将 段(dw 1,2,3,4,5,6,7,8)做为栈,逐步弹出栈中元素到b段(dw 0,0,0,0,0,0,0,0)
开始时bx指向b段(dw 0,0,0,0,0,0,0,0)的最后一个元素,然后逐步bx=bx-2,实现逆序排列的
结果第一次执行到sub bx,2时就发生了错误,,求解。。。。。
- assume cs:code
- a segment
- dw 1,2,3,4,5,6,7,8
- a ends
- b segment
- dw 0,0,0,0,0,0,0,0
- b ends
- code segment
- start:
- mov ax,a
- mov ss,ax
- mov sp,0h
- mov ax,b
- mov ds,ax
- mov bx,1eh
- mov cx,8
- s: pop ds:[bx]
- sub bx,2
- loop s
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码 |