chao_prince 发表于 2011-3-4 21:10:29

实验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..
不知道我想的是哪个地方错了。。
求指教。。

china0008 发表于 2011-3-4 22:45:39

这题,填code和cs都对。但是填cs编译器会有个提示。但是不影响正确结果。

chao_prince 发表于 2011-3-5 10:27:01

回复 2# china0008


    但是如果用CS的话。。第二空我得出来的答案好像是17H哩。。
   而如果用CODE的话。。会得到18H。。
   不懂得里面的差别哎。。

木吉他 发表于 2011-3-6 12:49:27

mov ax, cs 这条代码的长度为2
mov ax, code 这条代码的长度是3
所以对应后面就有17h和18h了
debug 时u指令可以看到代码的长度

776051771 发表于 2011-4-29 22:31:08

回复 china0008 的帖子

请问这一题中,mov ax,code、、这一句是什么意思???

winddyj 发表于 2011-4-30 19:03:39

776051771 发表于 2011-4-29 22:31 static/image/common/back.gif
回复 china0008 的帖子

请问这一题中,mov ax,code、、这一句是什么意思???

   mov ax,code;把代码段地址传送到ax中
   mov ds,ax      ;把代码段的地址传给数据段
也就是让数据段和代码段处于同一段

776051771 发表于 2011-5-1 21:17:45

回复 winddyj 的帖子

呵呵、、谢谢;额啊、、

wy54072851 发表于 2011-5-2 13:36:34

其实PUSH CXPOP DS 是最好的。。。我们又不是为了考试而来:P

小乌龟 发表于 2011-5-11 09:38:01

回复 木吉他 的帖子

为什么mov ax,cs占两个字节,而mov ax,code占三个字节,这个空格为什么可以填cs?

sunhopp 发表于 2011-5-16 22:19:17

本帖最后由 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都可以的

小乌龟 发表于 2011-5-16 22:32:18

回复 sunhopp 的帖子

明白了 感谢:handshake

sunhopp 发表于 2011-5-16 22:34:15

回复 小乌龟 的帖子

:handshake 互相帮助嘛!
页: [1]
查看完整版本: 实验4 第三题的疑问 。。