. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请问为什么我做的第二章检测题不通过啊,进来看下,谢谢!  [待解决] 回复[ 13次 ]   点击[ 638次 ]  
lcshigod
[帖 主]   [ 发表时间: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题,以经几次了。到底是哪错了啊
lisfan
[第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个错。。。。难道我也错了,,等待求解- -。
lcshigod
[第2楼]   [ 回复时间:2010-04-03 12:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-05 18:48
2.CS是段寄存器啊,IP是通用寄存器吗
lee_lp
[第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  五次
      自动指向一地址  六次
lee_lp
[第4楼]   [ 回复时间:2010-04-03 16:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-30 13:04
第一题错了应该选3 0d22H
xxkaishui
[第5楼]   [ 回复时间:2010-05-14 12:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-14 11:44
上述求解我都验证了
难道是机器的错

第二章还没过
di13053217068
[第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
147725547
[第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次___。  

解释如楼上。
pengshaomin
[第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>
pengshaomin
[第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内存
ugene
[第10楼]   [ 回复时间:2010-11-17 15:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-09 15:48
回复楼主:第一题是1d22,第五题是6次,回复2楼:通用寄存器就四个,CS是代码段寄存器,IP是指令指针寄存器
guoqingshun123
[第11楼]   [ 回复时间:2010-11-19 19:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-11-18 22:02
楼主好厉害啊,我5题错了3题都不知道哪里出错了,还在寻求答案中...大家都已经帮你解好了,课本14页通用寄存器就AX、BX、CX、DX所以1楼错了。
qwe123qwe
[第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两题
q35tzven
[第13楼]   [ 回复时间:2010-12-20 21:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-26 22:28
回复:[第12楼]
------------------
做错的是4.5吧
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved