响当当 发表于 2011-8-9 11:22:25

7.5视频中的那个例子,求帮助

本帖最后由 weixianlang 于 2011-8-9 13:20 编辑

assume cs:code,ds:data
data segment
   dw 02,00,06,00,00
data ends
code segment
start: mov ax,data
    mov ds,ax
    mov bx,0
    mov ax,
    mov cx,
    mov cx,
mov ax,4c00h
int 21h
code ends
end start

我想想问问这段代码有问题吗,为什么,执行 mov cx,时,cx的值改变了cx=0000,但是执行mov cx,这句话时就没有改变,应该变为cx=0006呀,不是吗,高手帮忙看看??

parbbo 发表于 2011-8-9 11:46:59

你看看你的data内存方的是什么数据,bx+1、bx+2都是按字节跳动的,你觉得是怎么回事?

weixianlang 发表于 2011-8-9 13:25:31

因为你用的是dw,你改用db就可以了,dw表示后面没个数据都占用2个字节,02占用2个字节就是0002
所以你的ds段的内存分布是这样的
02 00 00 00 06 00 .......
所以你得不到你想要的结果!

响当当 发表于 2011-8-9 16:53:40

原来是这样啊{:7_172:},谢谢啦哈!

parbbo 发表于 2011-8-9 17:30:07

谢谁阿???

响当当 发表于 2011-8-9 20:29:39

我谢谢帮我回答问题的人啊!哈哈。。
页: [1]
查看完整版本: 7.5视频中的那个例子,求帮助