|
主题 : : 请问为什么我做的第二章检测题不通过啊,进来看下,谢谢! [待解决] |
回复[ 13次 ]
点击[ 638次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-04-01 21:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-05 18:48 |
(1) mov ax,936aH
mov bx,79b8H
add ax,bx
指令执行后AX中的数据是:__2__
1、 1c22H
2、 0c22H
3、 0d22H
4、 1d22H
下列地址信息与0020H:03EFH确定的内存地址不同的是__2___。
1、 5EFH
2、 203H:00EFH
3、 005EH:000FH
4、 0002H:05CFH
(2)下列关于8086CPU的工作原理的描述错误的是__3___。
1、 汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。
2、 CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。
3、 任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。
4、 传送指令能够更改所有通用寄存器的内容。
(3) mov ax,936aH
mov bx,79b8H
add al,bl
(4) 指令执行后AX中的数据是:_2___
1、 1c22H
2、 9322H
3、 9422H
4、 1d22H
(5) 1000:0 mov ax,8
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:a jmp bx
CPU从1000:0处开始执行指令当执行完1000:a处的指令后CPU几次修改IP__7___。
1、 4
2、 5
3、 6
4、 7
第5题:mov ax,8执行完后——第一次修改IP
jmp ax 加载后——第二次修改IP
jmp ax 执行后——第三次修改IP
mov ax,0执行后——第四次修改IP
mov bx,ax执行后——第五次修改IP
jmp bx 加载后——第六次修改IP
jmp bx 执行后——第七次修改IP
提示错了2题,以经几次了。到底是哪错了啊 | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-04-02 13:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-12 12:25 |
1.936a+79b8---a+8=10+8=18,18-16=2,进1,6+b+1=6+11+1=18,同样得2进1,3+9+1=13,a是10,那么13就是d,9+7=16,16-16=0,进1,又因为是16位寄存器,因此最后是0d22。
2.传送指令能够更改所有通用寄存器的内容。,传送指令也就是mov,它无法改变cs:ip的值,只能通过转移指令,具体看2.11小节。
5
。。第5题:mov ax,8执行完后——第一次修改IP
jmp ax 加载后——第二次修改IP
jmp ax 执行后——第三次修改IP
mov ax,0执行后——第四次修改IP (错误)
mov bx,ax执行后——第五次修改IP
jmp bx 加载后——第六次修改IP
jmp bx 执行后——第七次修改IP
你这里第4步就错误了,jmp ax之后,就是ip指向了1000:8,因此会跳过mov ax,0,直接执行mov bx,ax,因此是6次
完毕,为什么是3个错。。。。难道我也错了,,等待求解- -。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-04-03 12:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-05 18:48 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-04-03 16:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-30 13:04 |
第五题:应该选3吧
1000:0 mov ax,8 一次
1000:3 jmp ax 二次
1000:5 mov ax,0 三次
1000:8 mov bx,ax 四次
1000:a jmp bx 五次
自动指向一地址 六次 | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-04-03 16:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-03-30 13:04 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-05-14 12:31 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-14 11:44 |
上述求解我都验证了
难道是机器的错
晕
第二章还没过 | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-05-16 08:43 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-14 22:38 |
mov ax,8执行完后——第一次修改IP
jmp ax 加载后——第二次修改IP
jmp ax 执行后——第三次修改IP
mov bx,ax执行后——第四次修改IP
jmp bx 加载后——第五次修改IP
jmp bx 执行后——第六次修改IP | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-05-16 19:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-07 22:00 |
(5) 1000:0 mov ax,8
1000:3 jmp ax
1000:5 mov ax,0
1000:8 mov bx,ax
1000:a jmp bx
CPU从1000:0处开始执行指令当执行完1000:a处的指令后CPU几次修改IP__6次___。
解释如楼上。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-05-23 00:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-22 23:34 |
(a)<sub>16</sub> = (10)<sub>10</sub>
(b)<sub>16</sub> = (11)<sub>10</sub>
<br />
a + 8 = 18
18-16 = 2
<br />
第一位是 2 然后进1
<br />
6+b = 17 +1 = 18 - 16 = 2
第二位是2
<br />
3+9 = 12+1
<br />
第三位是(13)<sub>10</sub>转换16进制是d
<br />
第四位是9+7 = 16 -16 = 0 进1
<br />
因为是16位CPU最高位丢弃
<br />
<h2 style = "color:blue">最后得 0d22h</h2> | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-05-23 00:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-05-22 23:34 |
2. cs:ip是通过jmp更改当前执行指令
5. 4次
第一次执行了mov ax,8
第二次执行jmp ax
jmp直接修改了ip值,执行指令跳转到mov bx,ax 第三次
然后执行jmp bx 第四次 到达1000:a内存 | | |
|
|
|
|
[第10楼]
[ 回复时间:2010-11-17 15:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-09 15:48 |
回复楼主:第一题是1d22,第五题是6次,回复2楼:通用寄存器就四个,CS是代码段寄存器,IP是指令指针寄存器 | | |
|
|
|
|
[第11楼]
[ 回复时间:2010-11-19 19:25 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2010-11-18 22:02 |
楼主好厉害啊,我5题错了3题都不知道哪里出错了,还在寻求答案中...大家都已经帮你解好了,课本14页通用寄存器就AX、BX、CX、DX所以1楼错了。 | | |
|
|
|
|
[第12楼]
[ 回复时间:2010-11-28 01:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-27 22:45 |
通用寄存器(general register)有8个:AX,BX,CX,DX,DI,SI,BP,SP,不包括CS,IP,这方面王爽的书上没有说清楚,但是看杨季文的80X86上有准确的定义
补充一点:楼主你做错的是1,5两题 | | |
|
|
|
|
[第13楼]
[ 回复时间:2010-12-20 21:36 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-26 22:28 |
回复:[第12楼]
------------------
做错的是4.5吧 | | |