| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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中的数据吗? 
 
 
 |   
 
 
 
 |