书本 P120 的问题
书本P120有这样的一道题目: 将内存 ffff : 0 ~ ffff :b单元的数据复制到 0 : 200 ~ 0 :20b单元中书本给出的答案是:
assume cs:code
code segment
mov bx,0
mov cx,0ch
s:mov ax, 0ffffh
mov ds, ax
mov dl,
mov ax, 0200h
mov ds, ax
mov , dl
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end
我写的代码为:
assume cs:code
code segment
mov bx, 0
mov cx, 0ch
s: mov ax, 0ffffh
mov ds, ax
mov dx,
mov ax, 0200
mov ds, ax
mov , dx
add bx, 2
loop s
mov ax, 4c00h
int 21h
code ends
end
debug时发现0:200 ~ 0 : 20b 单元的内容并没有改变, 即内存 ffff : 0 ~ ffff :b单元的数据 不 能 成功复制到 0 : 200 ~ 0 :20b单元中 。 书本里是一个一个字节复制, 我的是一个一个字复制, 为什么不行啊??! :Q。求助大虾解释为什么不能一个字复制过去。
你看错了?书本的mov ax, 0200h
怎么会把偏移设置成0200H呢,那变成物理地址不就成了2000了?
mov ax, 0200这你自己写的,少了个h,更悲催
h代表16进制,你不加就是10进制,200的10进制就是512,*16以后就是5120……你偏哪去了 哈哈 楼上正解 h 和没h 差别就是十六进制和十进制了 细心是很重要的哦 就爱吃麻花 发表于 2011-8-6 15:54 static/image/common/back.gif
你看错了?书本的mov ax, 0200h
怎么会把偏移设置成0200H呢,那变成物理地址不就成了2000了?
谢谢你的帮助啊, 确实是少了个H, 应改为mov ax, 0200h .另: 书本的怎么会把偏移地址设为0200H呢? 书本的要求是往0 : 200 ~ 0 :20b单元中复制内容, 即物理地址是2000H.
yao072002 发表于 2011-8-7 10:18 static/image/common/back.gif
谢谢你的帮助啊, 确实是少了个H, 应改为mov ax, 0200h .另: 书本的怎么会把偏移地址设为0200H呢? 书 ...
另: 书本的怎么会把偏移地址设为0200H呢? 书本的要求是往0 : 200 ~ 0 :20b单元中复制内容, 即物理地址是2000H.
看这里,0 : 200 ,200在右边,左边是段地址,右边是偏移地址,只有段地址才会*16,所以应该是0200才对
就爱吃麻花 发表于 2011-8-7 12:32 static/image/common/back.gif
另: 书本的怎么会把偏移地址设为0200H呢? 书本的要求是往0 : 200 ~ 0 :20b单元中复制内容, 即物理地 ...
认真看一下书, 确实是我看错了, 书本要求的物理地址确实是 0020:0. 让你见笑了
页:
[1]