|
主题 : : 十二章检测题答案及解析。 [已解决] |
回复[ 8次 ]
点击[ 1106次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-07-30 22:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:9
信誉值:3
注册日期:2008-06-12 09:16 |
(一)下列指令能通过编译的是 __2___
1、 div [32]
2、 mov ax,ds:[bp]
3、 int 121h
4、 jmp 32
这道题,第一次做时,选4,其实是2.当时错误地认为,【bp】前面应该是SS。其实不是这样的。是说当[bp]前面没有段前缀时就默认为SS。如果指明了段寄存器的话,就不会采用默认的SS段寄存器了。div 【32】不能通过,是因为【32】不知是字节单元,还是字单元。另外,【32】前面还应该加上段前缀。如:
assume cs:code
code segment
start:mov ax,0200H
mov ds,ax
mov ax,123H
mov dx,243H
div word ptr ds:[32]
int 21H
code ends
end start
如果【32】前面不加ds前缀,也会出现“Immediate mode illegal”,即立即数寻址方式非法。
(二)在执行int指令前各个寄存器的值如下
AX=1221 BX=0005 CX=0014 DX=0000 SP=0016 BP=0000 SI=0000 DI=0000
DS=B800 ES=13F4 SS=1404 CS=1404 IP=0012 NV UP EI PL NZ NA PO NC
则int指令执行后内存SS:[12H]处的字单元的内容为__3___
1、 B800H
2、 3202H
3、 1404H
4、 0012H
这题只要记住执行中断例程前,CPU会保护现场,记住先存储标志寄存器,再CS,最后为IP就能解疑了。
(三)关于在执行中断程序前将TF位设置为0下列说法正确的是__2__
1、 设置rep movsb指令的传送方向为正
2、 关闭单步中断
3、 屏蔽中断
4、 没有任何作用
我们知道执行中断程序时,CPU会保护现场,先存储标志寄存器的值,同事设置TF=0,IF=0,再存储CS,最后为IP。其中TF=0是关闭单步中断的,而IF=0则是为了屏蔽外部中断的。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-09-01 10:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-06-13 10:30 |
|
|
|
|
|
[第2楼]
[ 回复时间:2008-10-27 10:20 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-29 08:35 |
做第一题时我也存在疑虑,在2和4之间犹郁,最终选了4,4是短跳,也应该是对的呀 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-11-01 11:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2008-08-02 09:52 |
有疑问:(二)在执行int指令前各个寄存器的值如下
AX=1221 BX=0005 CX=0014 DX=0000 SP=0016 BP=0000 SI=0000 DI=0000
DS=B800 ES=13F4 SS=1404 CS=1404 IP=0012 NV UP EI PL NZ NA PO NC
则int指令执行后内存SS:[12H]处的字单元的内容为__3___
1、 B800H
2、 3202H
3、 1404H
4、 0012H
——————————————————————————————————————
“则int指令执行后内存SS:[12H]处的字单元的内容为” 应该改成“SS:[13H]处的字单元的内容为” 答案才是3、1404h
本题目如果不修改,答案都不对,真实结果应该是0400H | | |
|
|
|
|
[第4楼]
[ 回复时间:2009-02-05 16:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-09 12:50 |
jmp 后面必须是标号,不能用立即数
sp从来是减2,没有见过减1的 | | |
|
|
|
|
[第5楼]
[ 回复时间:2009-02-05 16:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-11-09 12:50 |
|
|
|
|
|
[第6楼]
[ 回复时间:2010-01-31 22:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:6
注册日期:2010-01-07 10:37 |
回复:[第3楼]
------------------
3楼你错了,出入栈都是以字为单位的,所以原题没错~~~~ | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-07-14 14:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:9
信誉值:3
注册日期:2008-06-12 09:16 |
此贴由 贴主 于 [ 2010-07-14 14:18 ] 结贴。 结贴原因:问题已解决 | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-07-14 14:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:9
信誉值:3
注册日期:2008-06-12 09:16 |
回复:[贴 主]
------------------
好长时间没有登陆了,呵呵。 | | |