汇编网首页登录博客注册
maxm的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  做不了第一个就做最好的, 做不了最好的就做第一个。
  • 『姓名』:
  • 『性别』:保密『发送消息
  • 个人说明:不要执着于学习步骤, 宁愿多看点知识
  • 详细信息『加为好友』
学习动态
最新留言
友情链接

[2009-02-23 16:09] 第9章 问题多多^_^

3.mov cx,0   
    s: mov ax,bx   
    loop s   
    以上指令序列执行后mov ax,bx被执行了多少次_____。   
 1、 0   
 2、 256   
 3、 65535   
 4、 65536   

4.mov ax,2   
    mov cx,3   
    s: add ax,2   
    s1:loop s   
    mov di,offset s1   
    mov si,offset s3   
    mov ax,cs:[di]   
    mov cs:[si],ax   
    mov ax,1   
    mov cx,3   
    s2: add ax,2   
    s3: nop   
    nop   
    所有指令执行完后ax的值为_____。   
 1、 15   
 2、 7   
 3、 11   
 4、 3
------------------------------------------------------
错了2道,分析一下,真汗 :

    3. 考察2点 (1)loop 标号 的含义 (2)cx是16位的 。这2点理解了不难选出正确答案: 65536 ,因为cx的变化轨迹为0~--> -32768 --> 32767 --> 0 

    4.关键: 拷贝的是 loop s 的机器码(E2FB),loop指令的机器码中 FB 是转移的位移(==标号处的ip值 - 当前ip值),而非loop s 指令本身,这点明白了,就很容易选出正确答案为 (ax)==7 ,

太粗心了, 请各位指点
评论次数(7)  |  浏览次数(840)  |  类型(检测题) |  收藏此文  | 

[  maxm   发表于  2009-02-23 16:43  ]

如分析有误,请各位指点。

[  maxm   发表于  2009-02-23 17:18  ]

盯了半天还有一道也错了,超汗 !
---------------------------------------------
下列能够改变CS:IP所指位置并能通过编译的指令是___。 4 
 1、 jmp short [bx]  
 2、 jne [bx]  
 3、 loop byte ptr [bx]  
 4、 jmp [bx] 

关键:[bx] (即ds:[bx]) 里面存放的是标号的值 !!!比如 jmp short [bx] ,假设此时 [bx] not in (-128 ~ 127), 那肯定是要错的 ,其他2和3同样的道理 。4 嘛,是啊 4,怎么解释 ?

[  maxm   发表于  2009-02-23 17:28  ]

首先4 编译通过 ,既然编译通过就简单了,编了一段小程序,debug了一下 :
---------------------------------------------
AX=0BF6  BX=0000  CX=000F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0BF6  ES=0BE6  SS=0BF6  CS=0BF6  IP=0008   NV UP EI PL NZ NA PO NC
0BF6:0008 FF27          JMP     [BX]                               DS:0000=F6B8
-t

AX=0BF6  BX=0000  CX=000F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0BF6  ES=0BE6  SS=0BF6  CS=0BF6  IP=F6B8   NV UP EI PL NZ NA PO NC
0BF6:F6B8 F60082        TEST    BYTE PTR [BX+SI],82                DS:0000=B8
-q

F:\masm5>
--------------------------------------------
可见(ip) 变成了f6b8 说明指令:jmp 内存单元 中 ,默认 内存单元是一个字。 也不用查书了 ^_^

[  starrynight   发表于  2009-02-24 11:45  ]

4.关键一点 拷贝的是 loop s 的机器码,而非loop s 指令本身,这点明白了,就很容易选出正确答案为 (ax)=7
此题答案为 2 。

[  游客   发表于  2009-02-24 15:39  ]

感谢楼上 ^_^ 改过来了。

[  maxm   发表于  2009-02-24 15:55  ]

第4道检测题,让我彻底整明白了补码的减法 的含义:'减去一个数' refers to '加上 模 - 该数的绝对值'。

[  kelithb   发表于  2009-02-25 10:43  ]

受益匪浅!

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码