标题:新手问数据逆序存放问题
取消只看楼主
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
结帖率:70%
已结贴  问题点数:20 回复次数:0 
新手问数据逆序存放问题
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,b
    mov ss,ax
    mov sp,16
    mov ax,a
    mov ds,ax
    mov bx,0
    mov cx,8
  s:    push ds:[bx]
    add bx,2
    loop s
      mov ax,4c00h
    int 21h
   

code ends
end start

想实现a段数据逆序存放在b段但是出现两个问题

1.把sp设置为16的时候调试会出错  我在执行第一和第二次-t命令的时候a段和b段的数据都是对的 a为1 2 3 4。地址1447:0000-000f    b为0 0 0 。地址1448:0000-000f
  但是在执行第三次-t命令的时候就发现b段的1448:0006就不是0了   

2.我把mov sp,16 改成mov sp,16h错误就没了  数据也被逆序存放了 但是逆序存放的地址变成1448:0006-0010    就不是b段了   

出错信息是  the NTVDM  CPU has encountered an illegal instruction.  
             CS:011e IP:018a OP:0f 00 0a 00 a7 choose 'close' to terminate the application

1448:0000 000f这个段好像没执行一条指令里面数据就会变一次就好像每次都会自己写入固定的数据一样

请高手帮帮我

[ 本帖最后由 kd83kdi93 于 2012-12-30 13:10 编辑 ]
搜索更多相关主题的帖子: start 
2012-12-30 12:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394548-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.343025 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved