|
主题 : : 检测点3.1的第2题居然 [待解决] |
回复[ 6次 ]
点击[ 731次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-11-30 20:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2008-11-24 20:37 |
晕 检测点3.1的第2题居然不知道怎样答还请各位指点 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-12-01 12:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
晕 检测点3.1的第2题居然不知道怎样答还请各位指点
------------------
回复:说说不明白的地方吧??
首先是各个寄存器的初始值,这个在实验一中就用到了,尤其是cs ip的设置。
然后..
然后就没有了,执行指令,由于各个指令的不同,执行的效果也不同,不清楚的弄清各个指令就ok了。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-12-01 13:02 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2008-10-30 16:26 |
认真看书总是会的..当前CS=2000H,IP=0,DS=1000H,AX=0,BX=0
执行CS:IP的指令,依次向下..注意每条指令执行后CS,IP的变化.
===============================================
汇编学习群:47647963 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-12-06 21:57 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:2
注册日期:2008-11-24 20:37 |
我按照指令的顺序MOV AX,6622
JMP 0FF0:0100
之后指针指向10000H处执行10000H处的内容可是这根本和下面的MOV BX,AX MOV AX,2000H
MOV DS,AX MOV AX,[0008] MOV AX,[0002] 没有关系呀 | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-12-09 21:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-12-06 21:24 |
3,楼的JMP是设置CS:IP的值,设置以后,程序会转向10000处执行,所以 MOV BX,AX指令不会执行,其他都会执行 | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-01-21 10:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:4
注册日期:2009-01-15 22:41 |
都不明白你什么意思。jmp跳转到了10000H 当然不会执行 mov bx,ax
麻烦你表述清楚 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-02-14 12:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-01-17 12:29 |
(1)计算机在执行时,首先会执行CS X 16 + IP的物理内存中的指令,而本题目一开始假设CS=2000H,IP=0。
(2)所以程序首先执行CS X 16 +IP = 2000H X 10 H + 0 = 20000H物理内存中指令
mov ax, 6622H 指令执后:AX = 6622H,CS不会变还是2000H,IP自动累加后等于0003H.
(3)也就是说下一条指令将要执行20003H内存中的指令jmp 0ff0:0100。这条指令执行后,就会把CS修改为0FF0H,IP修改为0100H.其它寄存器值保持原有。
(4)CS X 16 + IP=0FF0H X 10H + IP = 10000H,所以又转移动到内存10000H处执行指令mov ax,2000H,执行后IP=0103,CS=1000H,AX=2000H.
(5)执行mov ds,ax 执行后:CS=0FF0,IP=0105,AX=2000H,DS=2000H
(6)mov ax,[0008] 由于DS=2000H,所以会把DS X 10H + 0008= 20008H内存中的C389数据附给AX.执行后:CS=0FF0,IP=0108,AX=C389H,BX=0
(7)mov ax,[0002] 执行后:CS=0FF0,IP=010B,AX=EA66H,BX=0
通上面的执行过程,我发现20008H中的内存中数据没有转换为指令执行。CPU通过CS,IP来决定它将要执行的下一条指令,而DS左移一位后+[address]内存中的数据如果要转换为指令,就需要将其传给CS,IP。CPU才会将其认为指令执行。也就是程序。 | | |