专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 汇编语言

汇编选择题,求高手解释(解1题送10分,多谢!)

发布时间:2010-06-14 15:51:45 文章来源:www.iduyao.cn 采编人员:星星草
汇编选择题,求高手解释(解1题送10分,谢谢!)
最近学汇编,看了些题,有些不明白。 解释的越详细越好!
---------------------
1、 .DA – BYTE EQU THIS BYTE 
DA –WORD DW ′AB′,′CD′,′EF′,′GH′ 
. . . . . . . . 
MOV AL , DA–BYTE + 3 
MOV AH, BYTE PTR DA–WORD + 4  
上述二条传送指令执行后AX 中的内容是(D )
A .′DE′ B .′HC′ C .′CF′ D .′FC′ 

2、完成将累加器AL 清零, 并使进位标志CF 清零, 下面错误的指令是(A ) 
A .MOV AL, 00H B .AND AL , 00H 
C .XOR AL ,AL D .SUB AL, AL 

3、执行下面的程序段后, (AX) = ( B) 
TAB DW 1 , 2 , 3 , 4 , 5 , 6 
ENTRY EQU 3
MOV BX, OFFSET TAB 
ADD BX, ENTRY 
MOV AX, [ BX] 
A .0003H B .0300H 
C .0400H D .0004H 

4、MOV AL , 79 
ADD AL, 0B1H 
指令执行后, 设置的标志位CF 和OF 的值是(D ) 
A .CF = 0 OF = 1 B .CF = 1 OF = 1 C .CF = 0 OF = 0 D .CF = 1 OF = 0 

5、25 . DABY1 DB 12H, 34H , 56H , 78H 
DB $ - DABY1 
DABY2 DB 10H DUP (1 , 2 , 3 ) 

MOV DX, SIZE DABY1 
ADD DX, WORD PTR DABY1 + 4 
上述指令序列执行后, DX 的内容是( C) 
A .05H B .1005H C .0105H D .0202H 




------解决方案--------------------


第二题:因为MOV指令虽然能将AL清零,但MOV指令不会影响CF标志寄存器



第五题:SIZE是求 DABY1的字节,因为是DB,DB为1个字节,所以MOV DX, SIZE DABY1 (DX) = 1

DB $ - DABY1 表示当前地址减去 DABY1 的首地址,也就是求 DABY1 的长度(Length)
得出的值是4

ADD DX, WORD PTR DABY1 + 4,表示将(DX)加上DABY1开始的第4个位置的值,注意,位置是从0开始算起的,所以12H, 34H , 56H , 78H 分别为0、1、2、3,那么位置4就是DB $ - DABY1 求出的值,前面已经说过了,得出的值是4(也为04H)。
因为是WORD PTR ,所以还需要一个字节,也就是需要DB $ - DABY1,以及它下面的一个字节,那么DB $ - DABY1下面是DABY2 DB 10H DUP (1 , 2 , 3 ),也就是1、2、3、1、2、3(重复10次)这些 数,我们只需要第一个,第一个为1(01H)

这样两个值就知道了,一个是DB $ - DABY1 ,值为04H,另一个是01H。注意01是高字节,要放在高位,所以组合他们成为:0104H

现在可以简化成ADD DX, 0104H

前面已经知道DX的值为1
ADD,是加法,所以0104H加上1,的值为0105H,所以DX的值现在为0105H


------解决方案--------------------

第二题:因为MOV指令虽然能将AL清零,但MOV指令不会影响CF标志寄存器



第五题:SIZE是求 DABY1的字节,因为是DB,DB为1个字节,所以MOV DX, SIZE DABY1 (DX) = 1
 
DB $ - DABY1 表示当前地址减去 DABY1 的首地址,也就是求 DABY1 的长度(Length)
得出的值是4

ADD DX, WORD PTR DABY1 + 4,表示将(DX)加上DABY1开始的第4个位置的值,注意,位置是从0开始算起的,所以12H, 34H , 56H , 78H 分别为0、1、2、3,那么位置4就是DB $ - DABY1 求出的值,前面已经说过了,得出的值是4(也为04H)。
因为是WORD PTR ,所以还需要一个字节,也就是需要DB $ - DABY1,以及它下面的一个字节,那么DB $ - DABY1下面是DABY2 DB 10H DUP (1 , 2 , 3 ),也就是1、2、3、1、2、3(重复10次)这些 数,我们只需要第一个,第一个为1(01H)

这样两个值就知道了,一个是DB $ - DABY1 ,值为04H,另一个是01H。注意01是高字节,要放在高位,所以组合他们成为:0104H

现在可以简化成ADD DX, 0104H

前面已经知道DX的值为1
ADD,是加法,所以0104H加上1,的值为0105H,所以DX的值现在为0105H
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: