马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 359853328 于 2013-11-7 10:19 编辑
汇编代码: assume cs:codesg,ds:data
data segment db 'ABCDEF' data ends
codesg segment start: mov ax,data mov ds,ax mov ax,0b800H mov es,ax
mov bx,0 mov si,0 mov di,1 mov cx,6
s:mov ax,[bx] ;1 mov es:[si],ax ;2 mov al,0caH ;3 mov es:[di],al ;4 inc bx add si,2 add di,2 loop s
mov ax,4c00h int 21h
codesg ends
end start
单步执行以上代码发现在1和2处,ax传递ds:[bx]和es:[si]内存是,结果如下
先把ds:[bx]内存处的值赋值给ax,ax赋值后为4241H 后把ax的值放到es:[si]处,但是发现ax的值为0720H,不是原来的4241H,这个是怎么回事呢
单步执行3和4处,也是同样的问题,结果如下:
先把CAH赋值到ax的低8位,
然后再把CAH从ax中放入es:[di]内存中,发现ax的低八位给内存的值是07H,
搞了半天没有看懂ax中的值没有变化,但是ax传递给内存的值怎么不是ax的值呢
|