【求助】为什么debug加载到内存跟踪时cs值改变
本人刚学汇编,有些不理解程序如下,是将a段中的前8个字型数据逆序存储到b段中
程序代码:
assume cs:code a segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a ends b segment dw 0,0,0,0,0,0,0,0 b ends code segment start: mov ax,a mov ds,ax mov ax,b mov ss,ax mov sp,10h mov bx,0 mov cx,8 s: push [bx] add bx,2 loop s mov ax,4c00h int 21h code ends end start然后用debug跟踪发现循环在进行到第六次时,cs值改变
如下:
本来第六个执行了push [bx]后显示:
AX=1813 BX=000A CX=0003 DX=0000 SP=0004 BP=0000 SI=0000 DI=0000
DS=1813 ES=1803 SS=1815 CS=1816 IP=0015 NV UP EI PL NZ NA PE NC
1816:0015 83C302 ADD BX,+02
当t执行下一步时 变成了:
AX=1813 BX=0000 CX=0003 DX=0000 SP=0004 BP=0000 SI=0000 DI=0000
DS=1813 ES=1803 SS=1815 CS=0038 IP=0019 NV UP EI PL ZR NA PE NC
0038:0019 26 ES:
0038:001A AE SCASB
这是为什么?运行了几次都这样 不懂 希望有人指点我,谢谢!