|
主题 : : 第五章课后检测⑶题求讲解 [待解决] |
回复[ 11次 ]
点击[ 1193次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2013-03-11 17:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-03-10 12:38 |
第二条横线上的我不会填。我说下自己的看法:题目中让把mov ax,4c00h前的程序复制到另一段内存中,那么被复制的代码段地址应该是cs,所以第一条横线我添了cs。第二条横线需要我们知道所复制程序有多少字节,才知道应该循环多少次,而程序的长度不是就存在累加器cx中吗?为什么还要mov cx,__?我看了答案,是17h,大家怎么知道是17的啊?求讲解! | | |
|
|
|
|
[第1楼]
[ 回复时间:2013-05-23 15:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:10
信誉值:0
注册日期:2011-12-18 09:25 |
累加器cx中保存的程序长度包含了mov ax,4c00H和int 21H的长度,所以要用cx的长度减去5 | | |
|
|
|
|
[第2楼]
[ 回复时间:2013-07-06 18:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-06-25 21:08 |
我也有同样的疑问,程序没有运行根本不知道CX的值,就算知道了CX的值,怎么计算mov ax,4c00H和int 21H这两条的长度是5呢,求解答 | | |
|
|
|
|
[第3楼]
[ 回复时间:2013-07-09 11:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2013-02-02 01:48 |
mov ax,4c00H和int 21H机器码有五字节,不必深究。程序加载进内存,CX里面存入本程序长度 | | |
|
|
|
|
[第4楼]
[ 回复时间:2013-07-10 22:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-08 10:06 |
cx中是整个程序的长度,包含了mov ax,4c00h和int 21h的长度,所以要填写要求复制的程序的长度(不包含mov ax,4c00h和int 21h的长度)。如果第一空填写为cs,答案是17h。如果第一空填写为code,答案为18h。首先在mov cx,__处,随意填写一个数据,让程序编译成功,然后用R命令查看cx的值,mov ax,4c00H和int 21H机器码有五字节,减去5就得到结果。也可以去数机器码字节数! | | |
|
|
|
|
[第5楼]
[ 回复时间:2014-07-11 20:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2014-07-11 20:06 |
cx应该不是程序开始的位置,准确的位置应该是CS:IP,所以第一个是不是应该填CODE?长度更是不知道怎么搞 | | |
|
|
|
|
[第6楼]
[ 回复时间:2014-11-10 19:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2014-11-05 19:37 |
然后用R命令查看cx的值,mov ax,4c00H和int 21H机器码有五字节,减去5就得到结果。也可以去数机器码字节数!
为什么我的cx值是1c | | |
|
|
|
|
[第7楼]
[ 回复时间:2015-01-13 18:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-01-04 21:38 |
答案1:mov ax,cs (占2个字节)
mov cx,17
答案2:mov ax,code (占3个字节)
mov cx,18
答案3:mov ax,cs 或mov ax,code
把mov cx, 改成 sub cx,5
(因为在载入程序时,cx保存程序的长度,减去5是为减去mov ax,4c00h和int 21h的长度) | | |
|
|
|
|
[第8楼]
[ 回复时间:2015-12-30 01:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-12-30 01:07 |
|