寻址方式及指令系统习题与解答
- 格式:doc
- 大小:80.50 KB
- 文档页数:32
微机原理及应⽤(陈继红、徐晨)课后习题答案微机原理及应⽤(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址⽅式习题答案(部分)3.1总结计算机中⼗进制、⼆进制、⼋进制及⼗六进制数的书写形式。
123D、0AFH、77Q、1001110B分别表⽰什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表⽰⼗进制、⼗六进制、⼋进制、⼆进制。
3.2字长为8位、16位⼆进制数的原码、补码表⽰的最⼤数和最⼩数分别是什么?答案:8位原码表⽰的最⼤数:(27-1)、8位补码表⽰的最⼤数:(27-1)、8位原码表⽰的最⼩数:-(27-1)、8位补码表⽰的最⼩数-27。
16最⼩数:-215。
3.3答案:7DH。
(2)255(3)7248H。
(4)509013E2H。
3.4答案:240D0F0H。
128D80H。
(3)11111111⼗进制数:255D;⼗六进制数:0FFH。
(4)01010101⼗进制数:85D;⼗六进制数:55H。
3.5把下列⽆符号⼗六进制数分别转换为⼗进制数和⼆进制数。
(1)FF(2)ABCD(3)123(4)FFFF答案:(1)FF⼗进制数:255D;⼆进制数;11111111B。
1010101111001101B。
(3)123⼗进制数:291D;⼆进制数;000100100011B。
(4)FFFF⼗进制数:65535D;⼆进制数;1111111111111111B。
3.6分别⽤8位⼆进制数和16位⼆进制数写出下列⼗进制数的原码和补码。
(1)16(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9 答案:(1)16800010000(2)-16800010000(3)+0800000000(4)-0800000000(5)127801111111(6)-128810000000(7)1218:01111001;16位⼆进制数原码:0000000001111001补码:0000000001111001。
寻址方式及指令系统习题与解答计算机科学与工程学院黄洪波2012年3月一、单项选择题1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。
A.5000H B.5008H C.23008H D.32008H2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。
A.13000H B.23000H C.33000H D.3000H3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。
A.20200H B.30200H C.50200H D.200H4.指令MOV MEM[BX],AX中的MEM是()。
A.原码B.反码C.补码D.移码5.用来作为寄存器间接寻址的寄存器有()个。
A.8 B.6 C.5 D.46.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。
A.CS B.DS C.SS D.ES7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。
A.CS B.DS C.SS D.ES8.段内间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW9.段间间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW10.下述指令中不改变PSW的指令是()。
A.MOV AX,BX B.AND AL,0FHC.SHR BX,CL D.ADD AL,BL11.下述指令中不影响CF的指令是()。
A.SHL AL,1 B.INC CXC.ADD [BX],AL D.SUB AX,BX12.两个整数补码9CH和7AH相加运算后,会产生()。
A.无溢出且无进位B.无溢出但有进位C.有溢出且有进位D.有溢出但无进位13.指令JMP WORD PTR [BX]属于()寻址。
A.段内直接B.段内间接C.段间直接D.段间间接14.指令MOV AX,[BX+SI+8]的源操作数属于()寻址。
寻址方式和指令习题一、选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是()(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2、ORG 0003HLJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断0后,PC的值是()(A)0003H (B)2000H (C)000BH (D)3000H3、执行PUSH ACC指令,MCS-51完成的操作是()(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=()(A)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的哪一位被置位()(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区()(A)MOV PSW,#13H (B)MOV PSW,#18H(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.47、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是()(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完上面的程序后,PC的值是()(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用()(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令二、判断题1、MCS-51的相对转移指令最大负跳距是127B。
()2、当MCS-51上电复位时,堆栈指针SP=00H。
习题二答案单片机的指令系统一、选择题1、执行下列3条指令后,30H单元的内容是( C )。
MOV R0,#30HMOV 40H,#0EHMOV @R0,40HA)40H B)30H C)0EH D)FFH2、在堆栈中压入一个数据时(B)。
A)先压栈,再令SP+1 B)先令SP+1,再压栈C)先压栈,再令SP-l D)先令SP-1,再压栈3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向 A 。
A)栈底单元B)7FHC)栈底单元地址加1 D)栈底单元地址减l4、指令MOVC A,@A+PC源操作数的寻址方式是 D 。
A)寄存器寻址方式B)寄存器间接寻址方式C)直接寻址方式D)变址寻址方式5、ANL 20H,#30H指令中,源操作数的寻址方式是 A 。
A)立即寻址方式B)直接寻址方式C)位寻址方式D)相对寻址方式6、ANL C,/30H指令中,源操作数的寻址方式是 C 。
A)立即寻址方式 B)直接寻址方式C)位寻址方式 D)相对寻址方式7、Jz rel指令中,操作数rel的寻址方式是 D 。
A)立即寻址方式 B)直接寻址方式C)位寻址方式 D)相对寻址方式8、Jz rel指令中,是判断 A 中的内容是否为0。
A) A B) B C)C D)PC9、MOVX A,@DPTR指令中源操作数的寻址方式是(B)A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址10、下面条指令将MCS-51的工作寄存器置成3区(B)A)MOV PSW,#13H (B)MOV PSW,#18H11、MOV C,00H指令中源操作数的寻址方式是(A)A)位寻址 B)直接寻址 C)立即寻址 D)寄存器寻址二、填空题1、8051单片机共有7 种寻址方式。
访问外部数据存储器应采用寄存器间接寻址方式。
2、访问外部数据存储器应采用寄存器间接寻址方式;查表应使用变址寻址方式。
3、在8051单片机中,堆栈操作的指令有PUSH 和 POP两个。
交通信息与控制工程系教案(理论教学用)课程名称微机原理与接口技术第 8 次第 4 周 2 学时上课教室WM1310 课程类型专业基础课授课对象自动化专业章节名称第三章寻址方式和指令系统(3.3)教学目的和要求1.掌握8086的基本指令,如逻辑运算和移位指令、串操作指令、程序控制指令等。
讲授主要内容及时间分配1.逻辑运算和移位指令;(35min)2.串操作指令;(20min)3.程序控制指令;(25min)4.处理器控制指令。
(10min)教学重点与难点重点:1.逻辑运算和移位指令的基本功能和格式;2.串操作指令的基本功能和格式;3.程序控制指令的基本功能和格式。
难点:逻辑运算和移位指令的基本功能和格式。
要求掌握知识点和分析方法1.逻辑运算和移位指令的格式、功能及应用方法;2.串操作指令的格式、功能及应用方法;3.程序控制指令的格式、功能及应用方法。
启发与提问1.逻辑移位和算术移位指令的区别?教学手段多媒体+板书作业布置思考题:1.远跳转和近跳转的区别?3.2, 3.53.9, 3.113.12, 3.14主要参考资料备注讲授内容三、逻辑运算和移位类1.逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。
逻辑运算是按位操作的,它包括AND(与)、OR (或)、NOT(非)、XOR(异或)和TEST(测试)指令。
除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,AF位无定义,SF、ZF和PF 根据运算结果设置。
“与”运算指令格式:AND OPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。
【例】要屏蔽AL中的高4位。
AND AL,00001111B【例】AND AL,AL此指令执行前后,(AL)无变化,但执行后使标志位发生了变化,即CF=0,OF=0。
“或”运算指令格式:OR OPRD1,OPRD2操作:两操作数相“或”,结果送目标地址【例】(AL)=0FH,OR AL,10000000B(AL)=8FH【例】OR AL,AL指令执行前后,(AL)不变,但执行后标志位发生了变化,即CF=0,OF=0。
微机原理习题解答:4习题四1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。
其中寄存器寻址的指令执行速度最快。
2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H(2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H(10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。
(1)直接寻址答:有效地址为EA=C237H(2)用BX的寄存器间接寻址答:有效地址为EA=637DH(3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H (4)基址加变址寻址答:有效地址为EA=8E18H(5)相对基址变址寻址答:有效地址为EA=1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。
1.什么是“程序可见”的寄存器?程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。
2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途?基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。
通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。
3.80x86微处理器标志寄存器中各标志位有什么意义?常用的7位:CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。
在移位类指令中,CF用来存放移出的代码(0或1)。
PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。
当操作结果的最低位字节中1的个数为偶数时置1,否则置0。
AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。
ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。
SF符号标志:其值等于运算结果的最高位。
如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。
OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。
DF方向标志: 用于串处理指令中控制处理信息的方向。
当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。
4.画出示意图,简述实模式下存储器寻址的过程。
20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。
采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。
指令系统习题解答公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]指令系统习题解答一、选择题1、变址寻址方式中,操作数的有效地址等于______。
(C)A 基值寄存器内容加上形式地址(位移量)B 堆栈指示器内容加上形式地址(位移量)C 变址寄存器内容加上形式地址(位移量)D 程序记数器内容加上形式地址(位移量)2、用某个寄存器中操作数的寻址方式称为______寻址。
(C)A 直接B 间接C 寄存器直接D 寄存器间接3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。
(C)A 堆栈寻址方式B 立即寻址方式C 隐含寻址方式D 间接寻址方式4、寄存器间接寻址方式中,操作数处在______。
(B)A. 通用寄存器B. 主存单元C. 程序计数器D. 堆栈5、程序控制类指令的功能是______。
(D)A 进行算术运算和逻辑运算B 进行主存与CPU之间的数据传送C 进行CPU和I / O设备之间的数据传送D 改变程序执行顺序为SP指示器的6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,MSP栈顶单元,如果操作的动作是:(A)→M,(SP)- 1 →SP ,那么出栈的动SP作应是______。
(B)A (M)→A,(SP) + 1→SP ;SP)→A ;B (SP) + 1→SP ,(MSP)→A ;C (SP) - 1→SP ,(MSPD (M)→A ,(SP) - 1→SP ;SP7.指令周期是指______。
(C)A CPU从主存取出一条指令的时间;B CPU执行一条指令的时间;C CPU从主存取出一条指令加上CPU执行这条指令的时间;D 时钟周期时间;8、指令系统采用不同寻址方式的目的是______。
(B)A 实现存贮程序和程序控制;B 缩短指令长度,扩大寻址空间,提高编程灵活性;C 可直接访问外存;D 提供扩展操作码的可能并降低指令译码的难度9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。
指令系统习题解答一、选择题1、变址寻址方式中,操作数的有效地址等于______。
〔C〕A 基值寄存器内容加上形式地址〔位移量〕B 堆栈指示器内容加上形式地址〔位移量〕C 变址寄存器内容加上形式地址〔位移量〕D 程序记数器内容加上形式地址〔位移量〕2、用某个寄存器中操作数的寻址方式称为______寻址。
〔C〕A 直接B 间接C 寄存器直接D 寄存器间接3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。
〔C〕A 堆栈寻址方式B 立即寻址方式C 隐含寻址方式D 间接寻址方式4、寄存器间接寻址方式中,操作数处在______。
〔B〕A. 通用寄存器B. 主存单元C. 程序计数器D. 堆栈5、程序控制类指令的功能是______。
〔D〕A 进行算术运算和逻辑运算B 进行主存与CPU之间的数据传送C 进行CPU和I / O设备之间的数据传送D 改变程序执行顺序6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作的动作是:〔A〕→M SP,〔SP〕- 1 →SP ,那么出栈的动作应是______。
〔B〕A 〔M SP〕→A,〔SP〕 + 1→SP ;B 〔SP〕 + 1→SP ,〔M SP〕→A ;C 〔SP〕 - 1→SP ,〔M SP〕→A ;D 〔M SP〕→A ,〔SP〕 - 1→SP ;7.指令周期是指______。
〔C〕A CPU从主存取出一条指令的时间;B CPU执行一条指令的时间;C CPU从主存取出一条指令加上CPU执行这条指令的时间;D 时钟周期时间;8、指令系统采用不同寻址方式的目的是______。
〔B〕A 实现存贮程序和程序控制;B 缩短指令长度,扩大寻址空间,提高编程灵活性;C 可直接访问外存;D 提供扩展操作码的可能并降低指令译码的难度9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。
寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。
3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。
XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。
这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。
3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H(7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
第3章8086寻址⽅式和指令系统-题第3章8086寻址⽅式和指令系统⼀、单项选择题(共50⼩题)1、指令MOV AX,[3070H]中源操作数的寻址⽅式为()A、寄存器间接寻址B、⽴即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、⽬的操作数是寄存器操作数B、源操作数是存储器操作数C、⽬的操作数是存储器操作数D、源操作数是⽴即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器B、源操作数存于堆栈段C、⽬的操作数存于数据段D、⽬的操作数存于堆栈段8、BX是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、⽅向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通⽤寄存器D、变址寄存器11、SI是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通⽤寄存器C、8位通⽤寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)B、DXC、BPD、DI15、设SS=2000H,执⾏下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址⽅式中,操作数在( )中。
A、通⽤寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作⽤是( )。
楼第4章指令系统习题解答习题解答:1、什么叫寻址方式?8086/8088cpu共有哪几种寻址方式?请问:指令的串行方式就是指赢得操作数所在地址的方法。
8086/8088cpu指令的串行方式可以分成8种,为立即串行、轻易串行、寄存器串行、寄存器间接串行、寄存器相对串行、基址变址串行、基址变址相对串行、暗含串行。
2、指出下列指令中源操作数和目的操作数的寻址方式(1)movax,[si]源操作数:寄存器串行目的操作数:寄存器间接串行(2)movdi,100源操作数:寄存器串行目的操作数:立即串行(3)mov[bx],al源操作数:寄存器间接串行目的操作数:寄存器串行(4)mov[bx+si],cx源操作数:基址变址串行目的操作数:寄存器串行(5)adddx,106h[si]源操作数:寄存器串行目的操作数:寄存器相对串行3、判读以下指令的对错(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]弄错(7)inccs错(8)out40h,al对4、根据已知条件,计算划线部分的物理地址。
已知:ss=1000h,es=2000h,ds=3000h,cs=4000h,bx=5000h,di=1200h,bp=2300h(1)(2)(3)(4)(5)5、设sp初值为2400h,ax=4000h,bx=3600h,则执行指令pushax后,sp=?,再执行pushbx和popax后sp=?请问:则继续执行指令pushax后,sp=2400h-2=23feh,再继续执行pushbx和popaxmovax,[2300h]计算公式:ds×16+2300hmov[bx][di],ax计算公式:ds×16+bx+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[bp+6]计算公式:ss×16+bp+6movax,[di]计算公式:ds×16+di后sp=23feh。
指令系统寻址方式
1.指出下列指令中原操作数的寻址方式。
(1)MOV SI,100
(2)MOV CX,DATA[SI]
(3)MOV [SI],AX
(4)ADD AX,[BX][DI]
2.指出下列指令是否非法,说明理由。
(1)MOV BX,AL
(2)MOV CS,2400
(3)OUT 260H,AL
(4)MOV 100,BL
3.若(SP)=2000H,(AX)=3355H,(BX)=4466H,试指出下列指令或程序执行后有关寄存器的内容。
(1)PUSH AX 执行后(AX)=? , (SP)=?
(2)PUSH AX
PUSH BX
POP DX
执行后,(AX)=?(DX)=?(SP)=?
(4)下面是一个对2个8字长的组合BCD码相加的程序,阅读程序并加以注释。
MOV SI,1000H
MOV DI,2000H
MOV CX,8
CLC
LOOP:MOV AL,[SI]
ADC AL,[DI]
DAA
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ LOOP
…….
(5)编写一段程序使0404H开始的256个单元清0。
(6)编写一段程序在40个元素构成的数组中寻找第一个非0元素。
一.选择题1.指令ADD CX,55H[BP]的源操作数的寻址方式是( )。
(A) 寄存器寻址 (B) 直接寻址 (C) 寄存器间接寻址 (D) 寄存器相对寻址2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=( ) 。
(A) 113AH (B) 114AH (C) 1144H (D) 1140H3.若SI=0053H,BP=0054H,执行SUB SI,BP后,则( )。
(A) CF=0,OF=0 (B) CF=0,OF=1 (C) CF=1,OF=0 (D) CF=1,OF=14.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=( ) 。
(A) 0102H (B) 0201H (C) 245AH (D) 5A24H5.实模式下80486CPU对指令的寻址由( )决定。
(A) CS,IP (B) DS,IP (C) SS,IP (D) ES,IP6.使用80486汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则在VAL存储区内前十个字节单元的数据是( )。
(A) 1,2,3,3,2,1,0,1,2,3 (B) 1,2,3,3,3,3,2,1,0,1(C) 2,1,2,3,3,2,1,0 (D) 1,2,3,3,3,1,0,1,0,17.下列四条指令都可用来使累加器清"0",但其中不能清"进位"位的是( ) 。
(A) XOR AL,AL (B) AND AL,0 (C) MOV AL,0 (D) SUB AL,AL8.若(AX)=96H,(BX)=65H,依次执行ADD AX,BX指令和DAA指令后,(AL)=( )。
寻址方式及指令系统习题与解答计算机科学与工程学院黄洪波2012年3月一、单项选择题1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。
A.5000H B.5008H C.23008H D.32008H2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。
A.13000H B.23000H C.33000H D.3000H3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。
A.20200H B.30200H C.50200H D.200H4.指令MOV MEM[BX],AX中的MEM是()。
A.原码B.反码C.补码D.移码5.用来作为寄存器间接寻址的寄存器有()个。
A.8 B.6 C.5 D.46.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。
A.CS B.DS C.SS D.ES7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。
A.CS B.DS C.SS D.ES8.段内间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW9.段间间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW10.下述指令中不改变PSW的指令是()。
A.MOV AX,BX B.AND AL,0FHC.SHR BX,CL D.ADD AL,BL11.下述指令中不影响CF的指令是()。
A.SHL AL,1 B.INC CXC.ADD [BX],AL D.SUB AX,BX12.两个整数补码9CH和7AH相加运算后,会产生()。
A.无溢出且无进位B.无溢出但有进位C.有溢出且有进位D.有溢出但无进位13.指令JMP WORD PTR [BX]属于()寻址。
A.段内直接B.段内间接C.段间直接D.段间间接14.指令MOV AX,[BX+SI+8]的源操作数属于()寻址。
A.直接 B.寄存器相对C.基址变址D.相对基址变址15.指令()不改变CF的内容。
A.DEC AL B.ADD AX,CXC.SUB [BX],CL D.SBB AL,DL16.十进制数字74所对应的压缩型BCD码的形式是()。
A.74 B.74H C.4AH D.4A17.十进制数字85所对应的非压缩型BCD码的形式是()。
A.0085 B.0085H C.0805 D.0805H18.设AL=67H,执行“CMP AL,76H”后,AL=()。
A.76H B.0DFH C.67H D.0019.设AL=65H,BL=29H,执行下列指令后,AL=()。
ADD AL,BLDAAA.8EH B.94 C.94H D.8E20.压栈操作是()位数的操作。
A.8 B.16 C.32 D.任意21.执行IMUL指令时,如果乘积的高位部分不是低位部分的符号扩展,则()。
A.OF=0、CF=0 B.OF=0、CF=1 C.OF=1、CF=0 D.OF=1、CF=122.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=()。
A.0376H B.01BBH C.01BB D.037623.若要在BUF缓冲区中寻找与AL中不相等的数据,应使用()SCASB串操作指令。
A.REPNE B.REP C.REPE D.REPNZ24.如果“JNC L”指令的操作码放在0040H,转移后在0020H处取下一条指令的操作码,那么该条指令的位移量是()。
A.20H B.1EH C.0DEH D.0E0H25.如果“JA P”指令的操作码放在0050H, 该指令的位移量为34H,执行完此条指令转移到取下一条指令的偏移地址为()A.0082H B.0084H C.0086H D.0088H26.若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=1000H,执行“ADD AX,[BX]”指令后,AX=()。
A.8856H B.6678H C.8800H D.6600H27.设AX、BX寄存器中存放的是有符号的二进制数据,若执行“CMP AX,BX”指令后,()L表示大于则转L。
A.JZ B.JA C.JGE D.JG28.执行“DIV BX”指令后,()寄存器中存放商。
A.AL B.AH C.AX D.DX29.执行“()AX,BX”指令不改变AX寄存器中的内容。
A.CMP B.ADD C.XOR D.OR30.若AX=1000H,执行“NEG AX”指令后,AX=()。
A.1000H B.0E000H C.0F000H D.1001H二、多项选择题1.在下列寻址方式中,用来访问内存的寻址方式有()。
A.寄存器寻址B.寄存器间接寻址C.寄存器相对寻址D.直接寻址2.用来作为寄存器间接寻址的寄存器有()。
A.AX B.BX C.BP D.CX3.在下列指令中,源操作数使用DS段寄存器进行寄存器相对寻址的有()。
A.MOV AX,[DI+4] B.MOV AX,ES:[SI+8]C.MOV AX,[BP+4] D.MOV AX,[BX+4]4.在下列指令中,源操作数的寻址方式是错误的有()。
A.MOV AX,[DI+BX] B.MOV AX,[SI+DI]C.MOV AX,[BP+BX]D.MOV AX,[DX]5.在下列指令中,属于段内转移指令的有()。
A.JMP SHORT A B.JMP [BX]C.JMP DWORD PTR [BX] D.JMP NEAR PTR [BX+SI] 6.在下列指令中,错误的指令有()。
A.SUB 5,AL B.ADD AL,BXC.INC [BX] D.SHR AX,67.执行“CMP AX,8003H”指令后,当AX中的无符号数高于8003H时,下列指令中有效的转移指令有()。
A.JNB L B.JA L C.JG L D.JNL L8.可与串操作指令“CMPSW”指令配合使用的重复前缀有()。
A.REP B.REPZ C.REPNZ D.REPE9.在下列的输入/输出指令中,正确的指令有()。
A.IN AX,80H B.OUT DX,AXC.IN AL,340 D.OUT DX,AL10.在下列的指令中,错误的指令有()。
A.PUSH AL B.MOV AL,BXC.PUSH 1000H D.CALL AX11.可以用下列指令代替“LOOP L”指令的有()。
A.DEC CX B.DEC CXJNZ L JNC LC.DEC CX D.DEC CXCMP CX,0 JE LJE L三.填空题1.在一条指令中,立即数只能作源操作数。
2.8086/8088 CPU形成的内存物理地址有20位。
3.指令“MOV AX,[BX+SI]”的源操作数在内存的 DS 段。
4.指令“MOV BX,[BP+DI]”的源操作数在内存的 SS 段。
5.指令“MOV AX,ES:[SI]”的源操作数在内存的 ES 段。
6.入栈指令使用的是 SS 段。
7.指令“ADD[BX+SI],AL”的目的操作数是基址 +变址寻址方式。
8.指令“SUB BX,A[SI]”的源操作数是寄存器相对寻址方式。
9.指令“JMP DWORD PTR [BX]”属于段间间接寻址方式。
10.可作为寄存器间接寻址的寄存器有 4 个。
11.堆栈是从高地址向低地址方向生长的。
其操作遵循 LIFO 的操作原则。
12.在进行弹栈操作时应该先将弹出的数据送目标地址,然后 SP+2 。
13.在进行多精度加法运算时,一般使用 ADC 指令。
14.通用的数据传送指令不影响 PSW 。
15.“INC AL” 指令不影响标志位的 CF 位。
16.若AL=11H,执行“NEG AL” 后,AL= 。
17.JMP指令的执行PSW寄存器中的各位。
18.两个无符号数进行比较时,可以根据标志位来判断大小。
在编写程序时可使用指令来实现。
19.若执行“DIV BX”,其被除数的高16位必须放在,低16位必须放在。
20.DAA指令只对寄存器中的内容进行调整。
21.若AL=84H,在执行CBW后,AL= 。
22.十进制数1234的压缩型BCD码为。
23.执行AND AL,0FHJNZ L指令,是检测AL中的位,当它为非零则转移。
24.若移位指令的移位位数大于1时,其移位位数必须放在中。
25.如果AL=85H,CL=4,执行“SAR AL,CL”时,AL= ,CF= 。
26.在串操作指令中,SI指向串,DI指向串。
27.如果要查找某串中与AL寄存器中有相同的字符(数),则在SCASB指令前应配合使用重复前缀。
28.转移指令“JNZ L ”的转移范围(十进制)是。
该指令的第二个字节为位移量,用形式表示。
29.段内调用指令改变中的内容。
30.段间调用指令改变中的内容。
四.判断题(判断下列指令是否正确,如果是错误的,请指出错误的原因)1.ADD AL,BX2.MOV [BX],SI3.SUB [BX],[SI]4.CMP 5,AL5.MOV CX,AX6.LEA BL,A7.SHR AL,68.MOV AL,[DI+SI]9.MOV BL,200H10.MOV AX,DATA11.INC [BX]12.CMP [BX],A ;A为变量13.MOV AX,‘+’14.MOV AX,[BP+BX]15.ADD AX,[CX]16.OUT 400,AL17.JNC P18.MOV BX,,OFFSET A19.LEA DI,A[SI]20.CMP AX,5五.改错题(按下列指令中的原意改正下列指令)1.DEC [SI]2.CMP AL,BX ;无符号数比较3.MOV [DX],AL4.MOV AL,300H5.MOV [BX],[DI] ;字节操作6.ADD AL,[CX+SI]7.ADD AL,BX ;有符号数相加8.PUSH AL9.CMP [BX],5 ;字节比较10.MOV DS,1234H六.简答题1.设BX=1000H,SI=2000H,位移量D=3000H,请指出下列各种寻址方式的有效地址是什么?(1)使用D的直接寻址(2)使用BX寄存器的间接寻址(3)使用BX寄存器的相对寻址(4)基址变址寻址(5)相对基址变址寻址2.请指出下列各条指令的源操作数的寻址方式是什么?(1)MOV AX,BUF(2)CMP AL,5(3)ADD [BX+5],AX(4)SUB AX,[BX+SI](5)ADC AH,A[SI](6)MOV BX,[SI](7)AND CX,B[BP+SI](8)JMP WORD PTR [BX](9)JMP P(10)JMP FAR PTR P3.设DS=2000H,BX=0100H,SI=0002H,(20100H)=12H,(20101H)=34H,(2 0102H)= 56H,(20103H)= 78H,(21200H)= 2AH,(21201H)= 4CH,(21202H)=B 7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器中的内容是多少?(1)MOV AX,1200H(2)MOV AX,BX(3)MOV AX,[1200H](4)MOV AX,[BX](5)MOV AX,[BX+1100H](6)MOV AX,[BX+SI](7)MOV AX,[BX+SI+1100H]4.按下列各小题的要求写出相应的一条汇编语言指令。