|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在6.2的实验中,题目是逆序排放数据,我对题目一些不理解,请指导一下。
assume cs:code
code segment
DW 0123H,0456H,0789H,0ABCH,0DEFH,0FEDH,0CBAH,0987H
DW 0,0,0,0,0,0,0,0 ;此行应该是表示占用8个字,也就是16个字节,那么为什么书本上的要是16个0,那不就是占用32个字节了?数据明明16个字节就够用了。
start:mov ax,cs
mov ds,ax
mov ss,ax
mov sp,32 ;如果按照我的理解 ,占用8个字,那么sp是20H就可以了,push以后,sp应该指向的是1E,一直到结束,SP指向10H,也没有超过栈顶,那么为什么0-F段的数据被串改了呢?
mov bx,0
mov cx,8
a1:push [bx]
inc bx
inc bx
loop a1
mov bx,0
mov cx,8
a2:pop [bx]
inc bx
inc bx
loop a2
mov 4c00H
int 21H
code ends
end start
问题1: 题目的答案中虽然栈空间给的很大,实际上push 和pop是对应的,有效使用只是一个字节
问题2: 题目的要求“实现依次用内存0:0~0:15单元中的内容改写程序中的数据”,难道要求不是更改程序中0~F中的数据吗?
|
|