实验4 第三题的疑问 。。
本帖最后由 loop 于 2011-5-17 06:52 编辑{:3_44:}assume cs:code
code segment
mov ax,code;code为所填写的数据
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,18h ;18h为所填写的数据
s: mov al,
mov es:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end本文来自:鱼C工作室<a href=http://www.fishc.com>详细出处参考:http://www.fishc.com/a/kehouti/_huibianyuyan_/828.html
这个是小甲鱼老师的解答。。
我自己的解答是。。
第一空填的是CS
然后用DEBUG后出来的CS:是1C,,也就是说。。第二空应该填的是17H..
不知道我想的是哪个地方错了。。
求指教。。 这题,填code和cs都对。但是填cs编译器会有个提示。但是不影响正确结果。 回复 2# china0008
但是如果用CS的话。。第二空我得出来的答案好像是17H哩。。
而如果用CODE的话。。会得到18H。。
不懂得里面的差别哎。。 mov ax, cs 这条代码的长度为2
mov ax, code 这条代码的长度是3
所以对应后面就有17h和18h了
debug 时u指令可以看到代码的长度 回复 china0008 的帖子
请问这一题中,mov ax,code、、这一句是什么意思??? 776051771 发表于 2011-4-29 22:31 static/image/common/back.gif
回复 china0008 的帖子
请问这一题中,mov ax,code、、这一句是什么意思???
mov ax,code;把代码段地址传送到ax中
mov ds,ax ;把代码段的地址传给数据段
也就是让数据段和代码段处于同一段
回复 winddyj 的帖子
呵呵、、谢谢;额啊、、 其实PUSH CXPOP DS 是最好的。。。我们又不是为了考试而来:P 回复 木吉他 的帖子
为什么mov ax,cs占两个字节,而mov ax,code占三个字节,这个空格为什么可以填cs? 本帖最后由 sunhopp 于 2011-5-16 22:19 编辑
回复 小乌龟 的帖子
问题1、你可以用Debug 单步看一下!
assume cs:code
code segment
mov ax,cs
mov ax,code
mov ax,4c00h
int 21h
code ends
end0B5C:0000 8CC8 MOV AX,CS
0B5C:0002 B85C0B MOV AX,0B5C;code转为地址,占了2个字节
0B5C:0005 B8004C MOV AX,4C00
0B5C:0008 CD21 INT 21
问题2
assume cs:code
这时系统分配的 cs地址与code地址相同的!所以填CS和code都可以的 回复 sunhopp 的帖子
明白了 感谢:handshake 回复 小乌龟 的帖子
:handshake 互相帮助嘛!
页:
[1]