/调皮_zzqwa 发表于 2012-4-16 17:16:06

汇编语言30

关于段中 利用栈将一组数据逆序存储 视屏中的给出的答案不能实现
assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0
start: mov ax,cs
       mov ss,ax
           mov sp,32
          
           mov bx,0
           mov cx,8
s:   push cs:
       add bx,2
           loop s
          
           mov bx,0
           mov cx,8
s1:    pop cs:
       add bx,2
           loop s1
          
           mov ax,4c00h
           int 21h
code ends
end start
后来我发现是循环数的问题
如果给出的第一个cx=8,第二个cx=16 结果是将第一组定义的数 给逆序了 而第二组仍未0
C:\Users\zhuzhu\Desktop\未命名.jpg

/调皮_zzqwa 发表于 2012-4-16 17:24:01

附 想发一张图片上去 无赖 没有权限

/调皮_zzqwa 发表于 2012-4-16 18:28:02

附 我再单步调试时发现 当程序运行到cs:6=0abc时,内存中的cs:0e原来是0987 被自动改为1415越往下运行 越来越多的定义内存值被改变,以至于最后的结果出错。不知道是什么原因

/调皮_zzqwa 发表于 2012-4-16 18:35:00

附:突然发现 如果是第一个cx=8,第二个cx=16 可以生成逆序的排列 但是 申请的栈空间却消失了
页: [1]
查看完整版本: 汇编语言30