汇编语言基础练习题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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