汇编语言基础练习题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空

1.在8086/8088的计算机中,存储单元的20位物理地址由两部分组成,即16

位的段地址和16位的偏移地址,物理地址= 段地址×10H+偏移量。

2.段的起始地址必须是某小段的首地址,它能被 10H 整除。

3.已知01020H字单元的内容为6A58H,请分别写出它的两个字节单元的地址和内容:(01020H)=58H,(01021H)=6AH。

4.指令执行后,若标志寄存器的ZF=0,则表示结果不为0;若SF=0,则表示结果的符号是正号,即结果为正数。

5.控制器从存储器取出一条指令后,指令指针寄存器IP的内容是将要执行的下一条指令开始的偏移地址。

6.段地址和偏移地址为1000:127B的存储单元的物理地址是 1127BH。

解:由物理地址= 段地址×10H+偏移量的公式可得

物理地址=1000H×10H+127BH=10000H+127BH=1127BH。

二、选择

1.与CS寄存器组合才能形成代码段的物理地址的寄存器是( C )。

A.SP寄存器

B.BP寄存器

C.IP寄存器

D.BX寄存器

2.如果存储器分段时,一个段最多允许16K个字单元,那么表示该段内偏移地址的二进制数至少是( A )。

A.15位

B.16位

C.17位

D.18位

解:16K个字单元,即为32K个字节单元。由于2的15次方为32K,因此至少需要15位二进制数才能表示16K个字单元。

3.已知一数据段的段地址是0100H,这个段的第6个字单元的物理地址是( B )。

A.01010H

B.0100AH

C.01012H

D.01006H

解:由于一个字单元占用两个字节,第一个字单元的偏移地址为0000H,因此第一个字单元的物理地址为01000H。以后每一个字单元的地址在前一个的基

础上加2,所以这个段的第6个字单元的物理地址是0100AH。注意:第6个字单元的偏移地址是在第一个的基础上加10,即0AH,物理地址应该是0100AH,而不是01010H。

三、计算

1.已知十进制数X的8位补码为E3H,求X和它的16位补码。

解:将十六进制数E3H转化为二进制数为:11100011(负数)。因为对负数的补码进行求补运算后得正数的补码,所以对11100011求补后得00011101,即1DH,对应的十进制数为29。

要求它的16位补码,只需将它的8位补码扩充到16位即可,其中高8位用低8位的符号位填充。因为E3H的符号位为1,所以它的16位补码为1111111111100011,即十六进制数FFE3H。

注意:求补运算就是将二进制位按位求反,然后末位再加1。

2.设数据段的大小为160个字节,请指出它的最末一个字单元的偏移地址。

解:160个字节,即为A0H个字节。因为任何一个段的偏移地址都是从0000H 开始的,因此该数据段的最末一个字单元的偏移地址为:A0H-02H=9EH。

3.在存储器中依次划分数据段和代码段,已知数据段的大小为251个字节,设操作系统分配给数据段的起始地址为1A580H,请计算出代码段的起始地址。

解:251个字节,即FBH个字节。因为段的起始偏移地址为0000H,所以代码段的起始物理地址为:1A580H+FBH-01H=1A67AH。

4.存储器中存放的数据如下图所示,请写出05421H和05422H字单元的内容。

解:在本题中,需要知道数据在存储器中存放的原则是:低位字节存入低地址单元,高位字节存入高地址单元;以及字单元的地址是用低位字节单元的地址表示的;一个字单元占用连续的两个字节单元的地址。

了解这些知识后,解此题就相当简单了。(05421H)=6C88H,(05422H)=D86CH。

四、简答

1.在数据段中有如下定义的数据:

BVAL DB 0C8H,58H

设BVAL=257AH,BX=178AH,SI=0DF0H,DI=0DE0H,BP=257AH;偏移量:DSP=10H,DIP=0DF0H。请用存储器操作数的5种寻址方式将两字节数据传送到AX寄存器中。

解:①直接寻址方式:

MOV AL,[BVAL]

MOV AH,[BVAL+1]

或 MOV AX,WORD PTR [BVAL]

②寄存器间接寻址方式:MOV AX,DS:[BP]

③寄存器相对寻址方式:MOV AX,[BX+DIP] 或 MOV AX,DIP[BX]

④基址变址寻址方式: MOV AX,[BX+SI] 或 MOV AX,[BX][SI]

⑤相对基址变址寻址方式:MOV AX,DSP[BX+SI] 或 MOV AX,DSP[BX][SI] 或 MOV AX,[DSP+BX+SI]

2. 在数据段中有如下定义的数据:

WVAL DW 340,256,178H,116H,280H,5FF0H

请用存储器操作数的5种寻址方式写出将字数据5FF0H传送到AX寄存器的指令序列。

解:①直接寻址方式:MOV AX,[WVAL+0AH]

②寄存器间接寻址方式:

MOV BX,OFFSET WVAL

ADD BX,0AH

MOV AX,[BX]

③寄存器相对寻址方式:

MOV BX,OAH

MOV AX,WVAL[BX] 或 MOV AX,[BX+WVAL]

④基址变址寻址方式:

MOV BX,OFFSET WVAL

MOV SI,0AH

MOV AX,[BX+SI] 或 MOV AX,[BX][SI]

⑤相对基址变址寻址方式:

MOV BX,08H

MOV SI,02H

MOV AX,WVAL[BX+SI] 或 MOV AX,WVAL[BX][SI] 或 MOV AX,[WVAL+BX+SI]

汇编语言练习题:第二章寻址方式和指令系统

文章来源:互联网编辑:luxin 加入日期:2008-11-22 点击:405

1.MOV AX,ES:[1000H] 源操作数的寻址方式是:

A. 立即寻址

B. 直接寻址

C. 变址寻址

D. 基址寻址

2.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是:

A. 基址寻址

B. 立即寻址

C. 变址寻址

D. 基址变址寻址

3.MOV DX,COUNT[BP][DI]的源操作数的寻址方式是:

A. 变址寻址

B. 基址寻址

C. 直接寻址

D. 基址变址寻址

4.若AX=1020H,BX=1200H,CF=1,则SBB AX,BX的执行结果为:

A. 0EF1FH

B. 0FEFFH

C. 0FE1FH

D. 0FE21H

5.若AX=2000H,CL=90H,则DIV CL执行后,AX=

A. 8038H

B. 8039H

相关文档
最新文档