指令与寻址方式习题

指令与寻址方式习题解答

1.试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:(1)AND AX,0FFH

(2)AND BL,[OFFH]

(3)MOV DS,AX

(4)CMP [SI],CX

(5)MOV DS:[0FFH],CL

(6)SUB [BP][SI],AH

(7)ADC AX,0ABH[BX]

(8)OR DX,-35[BX][DI]

(9)PUSH DS

(10)CMC

答:目的操作数源操作数

(1)寄存器直接寻址立即数寻址

(2)寄存器直接寻址直接寻址

(3)寄存器直接寻址寄存器直接寻址

(4)寄存器间接寻址寄存器直接寻址

(5)直接寻址寄存器直接寻址

(6)基址变址寻址寄存器直接寻址

(7)寄存器直接寻址寄存器相对寻址

(8)寄存器直接寻址基址变址相对寻址

(9)无寄存器直接寻址

(10)隐含寻址

2.试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。

(1)MOV [BX][BP],AX

(2)TEST [BP],BL

(3)ADD SI,ABH

(4)AND DH,DL

(5)CMP CL,1234H

(6)SHR [BX][DI],3

(7)NOT CX,AX

(8)LEA DS,35[SI]

(9)INC CX,1

(10)P USH 45[DI]

答:(1)应将BP,BX其中之一该为SI或DI

(2)正确

(3)ABH改为0ABH

(4)

(5)是字操作,CL改为CX

(6)移位数大于1时,应用CL

(7)NOT指令只有一个操作数

(8)LEA指令的源操作数应为一内存单元地址

(9)此指令不用指出1

(10)45改为45H

3.下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态?

MOV DL,86

ADD DL,0AAH

答: 0101,0110 + 1010,1010 = 1,0000,0000

CF=1 AF=1 ZF=1 SF=1 OF=1

4.在8086/8088CPU中可用于作地址指针的寄存器有哪些?

答:有BX,CX,DX,BP,SI,DI (IP,SP,)

5.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何?

(1)MOV CL,20H[BX][SI]

(2)MOV [BP][DI],CX

(3)LEA BX,20H[BX][SI]

MOV AX,2[BX]

(4)LDS SI,[BX][DI]

MOV [SI],BX

(5)XCHG CX,32H[BX]

XCHG 20H[BX][SI],AX

答(1) (CX)=56F6H;

(2) (09226H)=5678H;

(3) (AX)=1E40H;

(4) (1E4F6H)=0024H;

(5) (09226H)=1234H,(AX)=5678H.

6.已知(SS)=09l 5H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)=80H,(BP)=470H。现有一指令“MOV AX,OPRD”,如源操作数的物理地址为095C0H,试用四种不同寻址方式改写此指令(要求上述每个已知条件至少要使用一次)。

答:(1)MOV AX,[BP]

(2)MOV AX,[BP+DI+80H]

(3)MOV AX,[DI+0100H]

MOV AX,[SI+0220H]

(4)MOV AX,[02C0H]

7.试按下列要求分别编制程序段:

(1)把标志寄存器中符号位SF置‘1’。

(2)寄存器AL中高低四位互换。

(3)由寄存器AX,BX组成一个32位带符号数(AX中存放高十六位),试求这个数的负数。

(4)现有三个字节存储单元A,B,C。在不使用ADD和ADC指令的情况下,实现(A)+(B)=>C。

(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1形成奇数)。

答:(1)MOV AH, 80H

SAHF

(2 ) MOV BL, 0FH

AND BL, AL

SAL 4

SHR 4

XOR AL, BL

(3 ) MOV DX, 7FH

SUB AX, DX

MOV DX, 0FFH

SUB DX, BX

MOV BX, DX

(4 ) MOV AH, FFH

MOV BL, [B]

SUB AH, BL

MOV BH, [A]

SUB BH, AH

MOV [C], BH

(5 ) MOV AX, CX

NOT AX

TEST 01H

JNZ NEXT

HLT

NEXT: INC CX

HLT

8.试给出下列各指令的机器目标代码:

(1)MOV BL,12H[SI]

(2)MOV 12H[SI],BL

(3)SAL DX,1

(4)ADD 0ABH[BP][DI],1234H

答: (1) 10001010,11011111=8ADF;

(2) 10001000,01011100=885C;

(3) 11010001,11100010=D1E2;

(4) 10000001,10000001=8181.

9.执行下列指令后:

STR1 DW ‘AB’

STR2 DB 16DUP(?)

CNT EQU $-STR1

MOV CX,CNT

MOV AX,STR1

HLT

寄存器CL的值是多少?寄存器AX的值是多少?

答:寄存器CL的值为12H,寄存器AX的值为4241H。

10.JMP FAR PTR ABCD(ABCD是符号地址)的转移方式是什么?

答:JMP FAT PTR ABCD 的转移方式是段间直接转移.

11.MOV AX,ES:[BX][SI]的源操作数的物理地址是多少(用CS、DS、ES、SS、BX、SI表示

出即可)?

答:MOV AX,ES:[BX] [SI]的源操作数的物理地址是[ES]×10H+[BX]+[SI].

12.运算型指令的寻址和转移型指令的寻址,其不同点在什么地方?

答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址和基址加变址寻址方式。这些寻址方式中,CS,IP寄存器的内容不会发生变化。转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。在后三种寻址方式中,CS,IP寄存器的内容发生改变。

13.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和”LEA AX,TABLE”后,(AX)中的内容分别为多少?

答:执行MOV AX , TABLE后(AX)=1234H

执行LEA AX, TABLE 后(AX)=0032.

14.当指令”SUB AX,BX”执行后,CF=1,说明最高有效位发生了什么现象?对无符号

数来说,操作结果发生了什么现象?

答:执行指令SUB AX,BX后,CF=1,说明最高位发生了借位对无符号来说,操作结果发生了溢出。

15.在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为

30H、6CH、0B8H,则转向地址LAB的值分别为多少?

答:转向地址LAB的值分别为:

1000×10H+2H+30H=10032H

1000×10H+2H+6CH=1006EH

1000×10H+2H+B8H=100BAH

16.下面两个语句的区别在什么地方:

X1 EQU 1000H

X2=1000H

答:“EQU”和“=”都可以作为赋值语句,但二者的区别是EQU伪操作中的表达式是不许重复定义的,而“=”伪操作则许重复定义。

17.调用指令CALL可进行哪四种调用?

答:调用指令CALL可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。

18.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,请写出标志位ZF、PF、CF、

SF的内容:( P8050)

(1)ADD AL,BL

(2)SUB AL,BL

(3)AND AL,BL

(4)OR AL,BL

(5)XOR AL,BL

答:(1)ADD AL,BL

1 0 0 1 1 0 1 0

+)1 0 1 1 1 1 0 0

1,0 1 0 1 0 1 1 0 ∴ZF=0,PF=1 CF=1 SF=0

(2)SUB AL,BL

1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0

—)1 0 1 1 1 1 0 0 —〉 +)0 1 0 0 0 1 0 0

1 1 0 1 1 1 1 0

∴ ZF=0 PF=1 CF=1 SF=1

(3)AND AL,BL

1 0 0 1 1 0 1 0

AND)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0

1 0 0 1 1 0 0 0

(4)OR AL,BL

1 0 0 1 1 0 1 0

OR)1 0 1 1 1 1 0 0

∴ ZF=0 PF=1 CF=0 SF=0

1 0 1 1 1 1 1 0

(5)XOR AL,BL

1 0 0 1 1 0 1 0

XOR)1 0 1 1 1 1 0 0 ∴ ZF=0 PF=0 CF=0 SF=0

0 0 1 0 0 1 1 0

19.若(SP)=2800H,试用两种方法实现(SP)=27FEH.

答:方法一:执行一次PUSH指令 PUSH CX

方法二:执行一次PUSHF指令

20.试简述LES REG,SRC所完成的操作?

答:LES REG,SRC 是将SRC和SRC+1中的偏移量送到REG 寄存器,而将SRC+2和SRC+3中的段基址送ES段寄存器。

21.关系操作符EQ、NE、LT、GT、LE、GE计算的结果为逻辑值,试问0FFFFH代表

假,0代表真是否正确?

答:0FFFFH代表真。0表示结果为假。

22.堆栈存取操作是以字节为单位的.试分析当堆栈存入数据和从堆栈取出数据时SP

的变化?

答:当堆栈存入一个字时,(SP)<—SP—2

从堆栈中取出一个字时(SP)<—SP+2

23.试编写汇编程序段完成以下功能:将1000个字符的字符串从内存的BUFFER1搬

移到内存的BUFFER2中去。

解答 LEA SI,BUFFER1

LEA DI,BUFFER2

MOV CX,1000

CLD

REP MOVSb

24.试编写汇编程序段完成以下功能:将数据段中100个字的数据块BLOCK1搬移到

同一个数据段的BLOCK2中去。

解答: LEA SI,BLOCK1

LEA DI,BLOCK2

MOV CX,100

CLD

REP MOVSW

25.试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出

第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。

解答: CLD

LEA DI,DEST

LEA SI,SOURCE

MOV CX,500

REPE CMPB

JCXZ NEXT

DEC SI

MOV AL,BYTE PTR[SI]

NEXT:HLT

26.试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中,

有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。

解答:MOV BX,OFFSET BLOCK

MOV AX,[BX]

MOV CX,100

ADD BX,2

F0:CMP AX,[BX]

JGE F1

MOV AX,BX

F1:ADD BX,2

JCXZ NEXT

JMP F0

MOV MAX,AX

NEXT:HLT

27.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据

21H的物理地址是多少?

解答:

07H

21H

<—原栈顶20100

存放数据21H的物理地址是200FFH

指令系统习题解答

一、选择题

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、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。(D)

A 堆栈寻址

B 程序的条件转移

C 程序的无条件转移

D 程序的条件转移或无条件转移

10、算术右移指令执行的操作是______。(B)

A 符号位填0,并顺次右移1位,最低位移至进位标志位;

B 符号位不变,并顺次右移1位,最低位移至进位标志位;

C 进位标志位移至符号位,顺次右移1位,最低位移至进位标志位;

D 符号位填1,并顺次右移1位,最低位移至进位标志位

11、二地址指令中,操作数的物理位置可安排在______。(B)

A 栈顶和次栈顶

B 两个主存单元

C 一个主存单元和一个寄存器

D 两个寄存器

13、位操作类指令的功能是______。(C)

A.对CPU内部通用寄存器或主存某一单元任一位进行状态检测(0或1)

B.对CPU内部通用寄存器或主存某一单元任一位进行状态强置(0或1)

C.对CPU内部通用寄存器或主存某一单元任一位进行状态检测或强置

D.进行移位操作

14、以下四种类型指令中,执行时间最长的是______。(C)

A.RR型指令

B.RS型指令

C.SS型指令

D.程序控制指令

二、填空题

1、寻址方式按操作数的A.______位置不同,多使用B.______和C.______型,前者比后者执

行速度快。(A.物理 B.RR C.RS)

2、一个较完善的指令系统应包含A. ______类指令,B. ______类指令,C. ______类指令,程序控制类指令,I/O类指令,字符串类指令,系统控制类指令。(A.数据传送 B.算术运算 C.逻辑运算)

3、形式指令地址的方式,称为A.______方式,有B. ______寻址和C. ______寻址。(A.指令寻址 B.顺序 C.跳跃)

4、指令系统是表征一台计算机性能的重要因素,它的A. ______和B. ______不仅影响到机器的硬件结构,而且也影响到C. ______。(A.格式 B. 功能 C. 系统软件)

5、RISC指令系统的最大特点是:A. ______少;B. ______固定;C. ______种类少。只有取数/ 存数指令访问存储器。(A.指令条数 B.指令长度 C.指令格式和寻址方式)

6、指令操作码字段表征指令的A.______,而地址码字段指示B.______。微小型机多采用C.______混合方式的指令格式。(A.操作特征与功能B.操作数的地址C二地址、单地址、零地址)

7、指令格式中,地址码字段是通过 A.______来体现的,因为通过某种方式的变换,可以给出

B.______地址。常用的指令格式有零地址指令、单地址指令、

C.______三种.(A.寻址方式 B.操作数有效 C.二地址指令)

8、堆栈是一种特殊的A.______寻址方式,它采用B.______原理.按结构不同,分为C.______和存储器堆栈.(A.数据 B.先进后出 C.寄存器)

9、设D为指令中的形式地址,I为基址寄存器,PC为程序计数器。若有效地址E = (PC)

+ D,则为A.______寻址方式;若E = (I)+ D ,则为B.______;若为相对间接寻址

方式,则有效地址为C.______(A.相对 B.基值 C.E = ((PC)+ D ))

10、条件转移指令、无条件转移指令、转子指令、返主指令、中断返回指令等都是A______指令。这类指令在指令格式中所表示的地址,表示要转移的是B______而不是C______(A程序控制B.下一条指令的地址C.操作数的地址)

11、指令格式是指令用A______表示的结构形式,通常由B______字段和C______字段组成。(A.二进制代码B.操作码C.地址码)

三、应用题

1、(11分)指令格式如下所示,OP为操作码字段,试分析指令格式特点。

解:(1)操作码字段为6位,可指定26 = 64种操作,即64条指令。

(2)单字长(32)二地址指令。

(3)一个操作数在原寄存器(共16个),另一个操作数在存储器中(由变址寄

存器内容+ 偏移量决定),所以是RS型指令。

(4)这种指令结构用于访问存储器。

2、(11分)某计算机字长16位,主存容量为64K字,采用单字长单地址指令,共有64条指令,试采用四种寻址方式(立即、直接、基值、相对)设计指令格式。

解:64条指令需占用操作码字段(OP)6位,这样指令余下长度为10位。为了覆盖主存64K 字的地址空间,设寻址模式(X)2位,形式地址(D)8位,其指令格式如下:

寻址模式定义如下:

X= 0 0 直接寻址 有效地址 E=D (256单元)

X= 0 1 间接寻址 有效地址 E= (D )(64K )

X= 1 0 变址寻址 有效地址 E= (R)+D (64K )

X= 1 1 相对寻址 有效地址 E=(PC )+D (64K )

其中R 为变址寄存器(16位),PC 为程序计数器(16位),在变址和相对寻址时,位移量D 可正可

负。

3、(11分)假设机器字长16位,主存容量为128K 字节,指令字长度为16位或32位,共有128条

指令,设计计算机指令格式,要求有直接、立即数、相对、基值、间接、变址六种寻址方式。

解:由已知条件,机器字长16位,主存容量128KB / 2 = 64KB 字,因此MAR = 18位,共128

条指令,故OP 字段占7位。采用单字长和双字长两种指令格式,其中单字长指令用于算术逻辑和I

/ O 类指令,双字长用于访问主存的指令。

15 9 8 6 5

3 2 0

寻址方式由寻址模式X 定义如下:

X = 000 直接寻址 E = D (64K )

X = 001 立即数 D = 操作数

X = 010 相对寻址 E = PC + D PC = 16位

X = 011 基值寻址 E = R b + D ,R b =16 位

X = 100 间接寻址 E = (D )

X = 101 变址寻址 E = R X + D ,R X = 10位

4、(11分)指令格式如下所示,其中OP 为操作码,试分析指令格式特点。

解:

(1) 单字长二地址指令。

(2) 操作码字段OP 可以指定27=128条指令。

(3) 源寄存器和目标寄存器都是通用寄存器(可分别指定32个),所以是RR 型指令,两个

操作数均存在寄存器中。

(4) 这种指令结构常用于算术逻辑类指令。

5、(11分)指令格式如下所示,OP 为操作码字段,试分析指令格式的特点。

15 10 7 4 3 0

解:(1)双字长二地址指令,用于访问存储器。

(2)操作码字段OP为6位,可以指定26 = 64种操作。

(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由基值寄存器和位移量决定),所以是RS型指令。

6、(11分)指令格式结构如下所示,试分析指令格式及寻址方式特点。

(1)二地址指令。

(2)操作码OP可指定26=64条指令。

(3)源和目标都是通用寄存器(可分别指定32个寄存器),所以是RR型指令,两个操作数均在寄存器中

(4)这种指令格式常用于算术逻辑类指令

7、(11分)某16机机器所使用的指令格式和寻址方式如下所示,该机有20位基值寄存器,16个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令如图B20.1

图20。1

要求:(1)分析三种指令的指令格式与寻址方式特点。

(2)CPU完成哪一种操作所花的时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?

(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?

○1(F0F1)H(3CD2)H○2(2856)H

○3(6DC6)H○4(1C2)H

解:(1)第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,R由目标寄存器决定,S由20位地址(直接寻址)决定。

(2)处理机完成第一种指令所花的时间最短,因为RR型指令,不需要访问存储器。第二种指令所花的时间最长,因为RS型指令,需要访问存储器。同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。

(3)根据以知条件:MOV(OP)=00010101,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换为二进制代码且比较后可知:

○1(F0F1)H(3CD2)H指令代表LDA指令,编码正确,其含义是把主存(13CD2)H地址单

元的内容取至15号寄存器。

○2(2856)H代表MOV指令,编码正确,含义是把5号源寄存器的内容传送至6目标寄存器。○3(6DC6)H是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H。

○4(1C2)H是单字长指令,代表MOV指令,但编码错误,可改正为

(28D6)H。

汇编语言设计复习题(第2章:8086的寻址方式和指令系统)

1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。 DX 2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 DX A.1 B.2 C.3 D.由指令长度决定的 3、下列属于合法的指令是( D ) DX A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI], BL 4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是( 000DH )。 DX 5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是 ( 85B92H ) DX 6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS, DS,ES,SS 7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX, 1 )。 DX 8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。 DX 9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。 DX 10、下列传送指令中有语法错误的是( A )。 DX A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 11、下面指令执行后,改变AL寄存器内容的指令是( D )。 DX A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。 DX 13、执行下面指令序列后,结果是( AX=0FF82H )。 DX MOV AL,82H CBW 14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 DX A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR 15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是 ( PARA )。 DX 16、MOV SP,3210H PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。 DX 17、BUF DW 10H DUP(3 DUP(2,10H),3,5) 上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。 DX 18、MOV AH,7896H ADD AL,AH 上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 DX 19、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。 DX 20、在汇编语言程序中,对END语句的叙述正确的是( C )。 DX A.END语句是一可执行语句 B.END语句表示程序执行到此结束

作业习题 寻址方式和指令

寻址方式和指令习题 一、选择题 1、MOVX A,@DPTR指令中源操作数的寻址方式是() (A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址 2、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当CPU响应外部中断0后,PC的值是() (A)0003H (B)2000H (C)000BH (D)3000H 3、执行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 SP 4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=() (A)2000H (B)2001H (C)2002H (D)2003H 5、51执行完MOV A,#08H后,PSW的哪一位被置位() (A)C (B)F0 (C)OV (D)P 6、下面条指令将MCS-51的工作寄存器置成3区() (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4 7、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR 8、MOV C,#00H的寻址方式是() (A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址 9、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H 当执行完上面的程序后,PC的值是()

指令系统习题解答

指令系统习题解答 一、选择题 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、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。〔D〕 A 堆栈寻址 B 程序的条件转移 C 程序的无条件转移 D 程序的条件转移或无条件转移 10、算术右移指令执行的操作是______。〔B〕 A 符号位填0,并顺次右移1位,最低位移至进位标志位; B 符号位不变,并顺次右移1位,最低位移至进位标志位; C 进位标志位移至符号位,顺次右移1位,最低位移至进位标志位; D 符号位填1,并顺次右移1位,最低位移至进位标志位

课后习题六(第七章)

课后习题(第七章) 1、为了缩短指令中地址码的位数,应采用( B )寻址。 A、立即数 B、寄存器 C、直接 D、间接 2、指令系统中采用不同寻址方式的目的主要是( B ) A. 可降低指令译码难度 B. 缩短指令字长、扩大寻址空间、提高编程灵活性 C. 实现程序控制 D. 提高指令执行速度 3、零地址运算指令在指令格式中不给出操作数地址,它的操作数来源自( C ) A. 立即数和栈顶 B. 暂存器 C. 栈顶或隐含约定的位置 D. 存储器 4、单地址指令中,为完成两个数的算术运算,除地址译码指明的一个操作数外,另一个数常采用( C ) A. 堆栈寻址方式 B. 立即寻址方式 C. 隐含寻址方式 D. 基址寻址方式 5、二地址指令中,操作数的物理位置安排,描述正确的是( C ) A. 两个主存单元(且依然在现指令系统中采用) B. 栈顶和次栈顶 C. 主存单元或寄存器 D. 两个同时为寄存器不允许使用 6、操作数在寄存器中的寻址方式称为( C )寻址 A. 直接 B. 立即 C. 寄存器直接 D. 寄存器间接 7、寄存器间接寻址方式中,操作数在( C ) A. 通用寄存器 B. 堆栈 C. 主存单元 D. I/O外设中 8、变址寻址方式中,操作数的有效地址是( C ) A. 基址寄存器内容加上形式地址 B. 程序计数器内容加上形式地址 C. 变址寄存器内容加上形式地址 D. 形式地址本身 9、采用基址寻址可扩大寻址范围,且( B ) A. 基址寄存器内容由用户确定,在程序执行过程中一般不可变 B. 基址寄存器内容由操作系统确定,在程序执行过程中一般不可变 C. 基址寄存器内容由用户确定,在程序执行过程中可随意变化 D. 基址寄存器内容由操作系统确定,在程序执行过程可随意变化 10、变址寻址和基址寻址的有效地址形成方式类似,但是( C ) A. 变址寄存器内容在程序执行过程中是不可变的 B. 在程序执行过程中,变址寄存器和基址寄存器的内容可以随意变化 C. 在程序执行过程中,变址寄存器的内容可随意变化 D. 以上均不对 11、堆栈寻址中,设A为累加器,SP为栈顶指针,[SP]为其指向的栈顶单元,如果进栈的动作顺序是(SP)-1→SP,(A)→[SP],那么出栈的动作顺序是( A ) A. [SP] →(A),(SP)+1→SP B. (SP)+1→SP,[SP] →(A) C. (SP)-1→SP,[SP] →(A) D. [SP] →(A),(SP)-1→SP 12、设变址寄存器为X,形式地址为D,某机具有先变址再主存间址的寻址方式,则这种寻

微机原理第三章习题与参考答案

第三章习题与参考答案 3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。指出下列指令的寻址方式和物理地址。 (1) MOV AX,0ABH 立即寻址无 (2) MOV AX,BX 寄存器寻址无 (3) MOV AX,[l000H] 直接寻址 10000H (4) MOV AX,DATA 直接寻址 (DS*16+DATA ) (5) MOV AX,[BX] 寄存器间接寻址 10100H (6) MOV AX,ES:[BX] 寄存器间接寻址 20100H (7) MOV AX,[BP] 寄存器间接寻址 30200H (8) MOV AX,[SI] 寄存器间接寻址 10050H (9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH (10) MOV AX,DISP[BX] 寄存器相对寻址 11100H (1l) MOV AX,[BX+SI] 基址变址寻址 10150H (12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H 3.2 分别说明下例指令采用的寻址方式和完成的操作功能。 (1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器 (2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器 (3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器 (4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元 (5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元 (6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元 (7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器 (8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元 (9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元 3.3 判断下列指令正误,如果错误请指出原因。 (1)MOV CH,2000H 错两个操作数的长度不一致 (2)XOR DL,BH 对 (3)ADD 100,AH 错目的操作数不能为立即数 (4)MOV DS,2200H 错立即数不能直接传送给段寄存器 (5)IN AL,250H 错源操作数必须为口地址 (6)MOV [BX][SI],[DI] 错两个操作数不能同时为存储器 (7) LEA AX,BL 错源操作数必须为地址标号 (8)MOV CX,ES:BX 错寄存器寻址不能用段超越前缀 3.4 设DS=1000H,SS=2000H,AX=1000H,BX=0020H,CX=2000H,BP=0002H,SI=0010H,DI=0030H,

第3章 寻址方式和指令系统

第三章习题集 一.判断(正确的在括号画“√”,错误的画“×”,每小题2分,共计20分) 1. 所有PC机具有相同的机器指令。 ( × ) 2. 指令SBB SI,[SI],源操作数是寄存器间接寻址方式,目的操作数是寄存器寻址方式。 () 3. MOV 20H[BX],TABLE,其中TABLE是符号地址,源操作数是立即数寻址方式,目的操作数 是变址寻址方式。() 4.MOV AX,[BP]的源操作数物理地址为16d ×(DS)+(BP) ( 错 ) 5. 偏移地址和有效地址是相等的。() 6.段内转移指令执行结果要改变IP、CS的值。 ( 错 ) 7. 8086CPU寄存器中,负责与I/O接口交换数据的寄存器是DX。( × ) 8. 堆栈是以先进后出方式工作的存储空间。( √ ) 9、立即数只能存放在代码段中。( × ) 10、间接寻址不能同时用于目的和源操作数。(√ ) 11、指令AND AL,0 和指令MOV AL,0执行后的结果完全一样。( × ) 12、字符串操作指令可以使用重复前缀来实现块操作。(√ ) 13、NOP指令不使CPU执行任何操作,因此执行它不需要任何时间。(× ) 14.OUT DX,AL指令的输出是16位操作数。(错) 15.不能用立即数给段寄存器赋值。 ( 对 ) 16.所有传送指令都不影响PSW寄存器的标志位。(错) 17.堆栈指令的操作数均为字。 (对) 18.REPE/REPZ是相等/为零时重复操作,其退出条件是:(CX)=0或ZF=0。(错) 19. INC [SI]指令合法。() 20. XCHG AX,ES 指令不合法。() 21. OUT DX,AL 指令不合法。() 22. MOV DS,1234H指令合法。() 23. MOV BL,AX [ ] 24. MOV AL,3F0H [ ] 25. MOV 12H,AL [ ] 26. POP CS [ ] 27. MOV CS,AX [ ] 28. MOV [BX],[DI] [ ]

第三章寻址方式与指令系统

第三章寻址方式与指令系统 一:选择题 1:下列指令中正确的是() A:MOV BX,AL B:MOV BL,AX C:MOV BL,AL D:MOV BL,BP 2:下列指令不合法的指令是() A:IN AX,03F8H B:MOV AX,BX C:REP CMPSB D:SHR BX,CL 3:下列指令中正确的是() A:MOV 100,CL B:MOV CL,100H C:MOV CL,1000 D:MOV CL,100 4:下列指令中正确的是() A:MOV SS,2400H B:MOV 2400H,SS C:MOV SS,DS D:MOV SS,SP 5:下列指令中正确的是() A:XCHG AH,AL B:XCHG AL,20H C:XCHG AX,DS D:XCHG[BX],[20H] 6:执行完下列程序后,BX寄存器的内容是() MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL A:002DH B:00EDH C:C02DH D:000DH 7:在程序运行过程中,确定下一条指令的物理地址的计算表达式是() A:CS×16+IP B:BX×16+DI C:SS×16+SP D:ES×16+SI 8:寄存器间接寻址方式中,操作数在()中 A:通用寄存器B:堆栈C:主存单元D:段寄存器 9:下列指令,指令()先执行CX-1赋给CX操作,然后再根据CX的值决定是否转移、循环或进行重复操作。 A:JNC B:REP C:JCXZ D:LOOP 10:运算型指令的寻址和控制转移型指令的寻址,其不同点在于() A:前者取操作数,后者决定程序的转移地址B:后者取操作数,前者决定程序的转移地址 C:两者都是取操作数D:两者都是决定程序的转移地址 11:在PC系列机中调试汇编语言程序的工具是DEBUG。用DEBUG调试程序时,可以在目标程序中设断点,或用单步跟踪来找出程序中的毛病。断点只能在RAM中设置,不能在ROM中设置,这是因为() A:ROM不能存放汇编程序B:ROM中数据不能修改 C:ROM不能放入断点中断指令D:ROM不能保护断点 12:DEBUG调试工具是汇编语言最有力的调试手段,当用D命令时显示的结果如下: 0000:0080 72 10 A7 00 7C 10 A7 00—4F 03 62 06 8A 03 62 06 0000:0090 17 03 62 06 86 10 A7 00—90 10 A7 00 9A 10 A7 00 INT 21H是最常用的DOS中断,试确定INT 21H的中断向量为 A:1072H:00A7H B:7C10H:A700H C:00A7H:107CH D;107CH:00A7H 13:设AL和BL是带符号数,当AL≤BL时转至NEXT处,在CMP AL,BL指令后应选择正确的条件指令是 A:JBE B:JNG C:JNA D:JNLE 二:填空题 1:若累加器AX中的内容为4142H,执行指令CMP AX,4041H后,(AX)= 。执行SUB AX,4041H 后,(AX)= 。 2:用CBW指令生成双倍长度的被除数存放在。用CWD指令生成双倍长度的被除数存放在。

第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、附加数据段寄存器 7、指令MOV AX,[BP]中 A、源操作数存于数据段 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) 14、下面4个寄存器中,不能作为间接寻址的寄存器是() A、BX B、DX C、BP D、DI 15、设SS=2000H,执行下列程序段后SP=() MOV SP,2000H

第3章习题解答

第3章思考题及习题3参考答案 一、填空 1.访问SFR,只能使用寻址方式。答:直接。 2.指令格式是由和组成,也可仅由组成。答:操作码,操作数,操 作码。 3.在基址加变址寻址方式中,以作为变址寄存器,以或作为基 址寄存器。答:A,PC,DPTR 4.假定累加器A中的内容为30H,执行指令 1000H:MOVC A,@A+PC 后,把程序存储器单元的内容送入累加器A中。答:1031H 5.在AT89S52中,PC和DPTR都用于提供地址,但PC是为访问存储器提供地址, 而DPTR是为访问存储器提供地址。答:程序,数据 6.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数 的。答:地址 7.下列程序段的功能是。答:A的内容与B的内容互换。 PUSH Acc PUSH B POP Acc POP B 8.已知程序执行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH。下述程序执行后, (A)= ,(SP)= ,(51H)= ,(52H)= ,(PC)=。 POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,@A+DPTR PUSH Acc MOV A,B INC A MOVC A,@A+DPTR PUSH Acc RET ORG 4000H DB 10H,80H,30H,50H,30H,50H

答:(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H 9.假定(A)=83H,(R0)=17H,(17H)=34H,执行以下指令后,(A)= 。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A 答:(A)=0CBH。 10.假设(A)=55H,(R3)=0AAH,在执行指令“ANL A,R3”后,(A)= ,(R3)= 。 答:(A)=00H,(R3)=0AAH。 11.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后, (DPH)= ,(DPL)= ,(SP)= 。 POP DPH POP DPL POP SP 答:(DPH)=3CH,(DPL)=5FH,(SP)=50H 12.假定,(SP)=60H,(A)=30H,(B)=70H,执行下列指令后,SP的内容为,61H单元 的内容为,62H单元的内容为。 PUSH Acc PUSH B 答:(SP)=62H,(61H)=30H,(62H)=70H。 二、判断对错 1. 判断以下指令的正误。 (1)MOV 28H,@R2;(2)DEC DPTR ;(3)INC DPTR;(4)CLR R0; (5)CPL R5;(6)MOV R0,R1;(7)PHSH DPTR;(8)MOV F0,C; (9)MOV F0,Acc.3;(10)MOVX A,@R1;(11)MOV C,30H;(12)RLC R0. 答:(1)错;(2)错;(3)对;(4)错;(5)错;(6)错; (7)错;(8)对;(9)错;(10)对;(11)对;(12);错。 2. 判断下列说法是否正确。 A. 立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。 B. 指令周期是执行一条指令的时间。 C. 指令中直接给出的操作数称为直接寻址。 D. 内部寄存器Rn(n=0~7)可作为间接寻址寄存器。 答:A.对;B.对;C.错;D.错。

第3章 习题及参考解答

第3章习题及参考解答 1.指出下列各指令中源操作数和目的操作数的寻址方式。 (1)MOV DI,100 (2)MOV CX.100[SI] (3)MOV [SI],AX (4)ADD AX,[BX+DI] (5)AND AX,BX (6)MOV DX,[1000] (7)MOV BX,[BP+DI+100] (8)PUSHF (9)SUB [1050],CX (10)AND DH,[BP+4] 解 源操作数目的操作数 (1)立即寻址寄存器寻址 (2)变址寻址寄存器寻址 (3)寄存器寻址寄存器间接寻址 (4)基址加变址寻址寄存器寻址 (5)寄存器寻址寄存器寻址 (6)直接寻址寄存器寻址 (7)基址加变址寻址寄存器寻址 (8)寄存器寻址寄存器间接寻址 (9)寄存器寻址直接寻址 (10)变址寻址寄存器寻址 2.试述指令MOV AX,2000H和MOV AX,DS:[2000H]的区别? 解区别有三条: (1)MOV AX,2000H对源操作数是立即寻址,而MOV AX.[2000H]对源操作数是直接寻址; (2)前者功能是把立即数2000H送入AX中,而后者是把内存2000H单元与2001H单元的内容取出送 入AX 中; (3)两者的机器代码不同,执行速度也不同,前者执行时间快,后者执行时间慢。 4.若DS=4000H,BX=0800H,[40800H]=05AOH,[40802H]=2000H,求执行指令LDS SI,[BX]后,DS与SI中的内容。若上题中的DS换成ES,其他条件不变,求执行指令LES DI,[BX]后,ES与DI 中的内容。 解 SI=05AOH,DS=2000H DI=05AOH,ES=2000H 5.若AX=98ABH,BX=A8BCH。求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF,ZF,AF,PF,CF和OF的状态。 解AX=4167H,BX=A8BCH,SFZFAFPFCFOF=001011B。 6.若CX=6700H,DX=78FFH,CF=1。求分别执行指令 (1)ADD CX,DX (2)ADC CX,DX (3)SUB CX,DX

寻址方式及指令系统习题与解答

寻址方式及指令系统习题与解答 计算机科学与工程学院黄洪波2012年3月 一、单项选择题 1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。 A.5000H B.5008H C.23008H D.32008H 2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。 A.13000H B.23000H C.33000H D.3000H 3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。 A.20200H B.30200H C.50200H D.200H 4.指令MOV MEM[BX],AX中的MEM是()。 A.原码B.反码C.补码D.移码 5.用来作为寄存器间接寻址的寄存器有()个。 A.8 B.6 C.5 D.4 6.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。 A.CS B.DS C.SS D.ES 7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。 A.CS B.DS C.SS D.ES 8.段内间接寻址只改变()中的内容。 A.CS B.IP C.CS和IP D.PSW 9.段间间接寻址只改变()中的内容。 A.CS B.IP C.CS和IP D.PSW 10.下述指令中不改变PSW的指令是()。 A.MOV AX,BX B.AND AL,0FH C.SHR BX,CL D.ADD AL,BL

11.下述指令中不影响CF的指令是()。 A.SHL AL,1 B.INC CX C.ADD [BX],AL D.SUB AX,BX 12.两个整数补码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,CX C.SUB [BX],CL D.SBB AL,DL 16.十进制数字74所对应的压缩型BCD码的形式是()。 A.74 B.74H C.4AH D.4A 17.十进制数字85所对应的非压缩型BCD码的形式是()。 A.0085 B.0085H C.0805 D.0805H 18.设AL=67H,执行“CMP AL,76H”后,AL=()。 A.76H B.0DFH C.67H D.00 19.设AL=65H,BL=29H,执行下列指令后,AL=()。 ADD AL,BL DAA A.8EH B.94 C.94H D.8E 20.压栈操作是()位数的操作。 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=1

指令 习题

第4章8086/8088CPU指令系统1.请指出以下各指令的源、目的操作数所使用的寻址方式。 (1)MOV SI,2100H (2)SBB DISP[BX],7 (3)AND [DI],AX (4)OR AX,[609EH] (5)MOV [BX+DI+30H],CX (6)PUSH ES:[BP] (7)CALL [DI]DISP (8)JNZ Short_ label 答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址 (2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址 (3)源操作数:寄存器寻址;目的操作数:变址寻址 (4)源操作数:直接寻址;目的操作数:寄存器寻址 (5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址 (7)只有一个操作数,为(带位移量的)变址寻址 (8)只有一个操作数,为相对寻址 2.请指出下列各条指令的错误,并改正。 (1)MOV DS,1000H (2)MOV [100],23H (3)ADD AX,[BX+BP+6] (4)PUSH DL (5)IN AX,[3FH] (6)OUT 3FFH,AL (7)LES SS,[SI] (8)POP [AX] (9)IMUL 4CH (10)SHL BX,5 (11)INT 300 (12)XCHG DX,0FFFH (13)MOV AH,BX (14)MOV [BX],ES:AX (15)MOV AX,OFFSET [SI] (16)MOV CS,AX (17)MOV DS,ES 答:(1)不允许直接向段寄存器送立即数,可改为: MOV AX,1000H MOV DS,AX (2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR或WORD PTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOV BYTE PTR [100],23H (3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为: ADD AX,[BX+DI+6] (4)堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSH DX (5)在输入/输出指令中,8位端口地址应直接写在操作数处。可改为: IN AX,3FH (6)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为:MOV DX,3FFH OUT DX,AL

微机原理答案

第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=10605H 3.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 BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址 (10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址 (11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀 3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么? 当前栈顶的地址=2FF00H 当执行PUSH BX 指令后,栈顶地址=2FEFEH (2FEFEH)=57H (2FEFFH)=34H 3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。 (1) SHR DX,1 ;DX=3C62H CF=1 (2) SAR DX,CL ;DX=03C6H CF=0 (3) SHL DX,CL ;DX=18A0H CF=1 (4) ROR DX,CL ;DX=2BC6H CF=0 (5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0; 3.9 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。 AX CF ZF OF SF PF (1)XOR AX,VALUE ; 134EH 0 0 0 0 1 (2)AND AX,VALUE ; 0821H 0 0 0 0 1 (3)SUB AX,VALUE ; F142H 1 0 0 1 1 (4)CMP AX,VALUE ; 0A69H 1 0 0 1 1 (5)NOT AX ; F596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1

微机原理习题集(3章)

一.单项选择题: 1、在存取数据时,默认的段地址存放在____寄存器中。 A CS B DS C SS D ES 2、指令____的目的操作数的寻址方式为直接寻址。 A MOV [2000H],AL B IN AL,DX C XOR AL,2000H D MOV AX,[BX] 3、8086的堆栈栈顶由____来指示。 A CS∶IP B SS∶IP C SS∶SP D CS∶SP 4、下面叙述正确的是____; A 地址分段方法主要是为了解决CPU地址总线条数与地址寄存器位数不同的 问题而产生的。 B 访问存储器时,段地址是由用户指定的寄存器提供的。 C 访问存储单元时,需要获得的地址是段地址。 D 任意相邻的两个段地址至少相距32个存储单元。 5、数据寄存器中可以用作累加器的是____; A AX B BX C CX D DX 6、已知(DS)=0100H,(SS)=1000H,(BP)=0050H,(SI)=0001H,disp=000AH,则 经过基址变址寻址后获得的物理地址是____; A 0105BH B 01051H C 1005BH D 10051H 7、8086CPU标志寄存器中的进位标志位是____; A CF B SF C PF D AF 8、下面叙述错误的是____; A 段寄存器的内容不都是用传送指令置入的。 B 取指令时,段寄存器一定是CS。 C 存取数据时,段寄存器一定是DS。 D 进行堆栈操作时,段寄存器一定是SS。 9、在8086/8088的基址加变址的寻址方式中,基址寄存器是指____; A AX,BX,CX,DX B BX,BP C SI,DI D CS,DS,ES,SS 10、设(DS)=426AH,偏移量为86H,该字节的物理地址是____;

指令与寻址方式习题

指令与寻址方式习题解答 1.试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:(1)AND AX,0FFH (2)AND BL,[OFFH] (3)MOV DS,AX (4)CMP [SI],CX (5)MOV DS:[0FFH],CL (6)SUB [BP][SI],AH (7)ADC AX,0ABH[BX] (8)OR DX,-35[BX][DI] (9)PUSH DS (10)CMC 答:目的操作数源操作数 (1)寄存器直接寻址立即数寻址 (2)寄存器直接寻址直接寻址 (3)寄存器直接寻址寄存器直接寻址 (4)寄存器间接寻址寄存器直接寻址 (5)直接寻址寄存器直接寻址 (6)基址变址寻址寄存器直接寻址 (7)寄存器直接寻址寄存器相对寻址 (8)寄存器直接寻址基址变址相对寻址 (9)无寄存器直接寻址 (10)隐含寻址 2.试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。 (1)MOV [BX][BP],AX (2)TEST [BP],BL (3)ADD SI,ABH (4)AND DH,DL (5)CMP CL,1234H (6)SHR [BX][DI],3 (7)NOT CX,AX (8)LEA DS,35[SI] (9)INC CX,1 (10)P USH 45[DI] 答:(1)应将BP,BX其中之一该为SI或DI (2)正确 (3)ABH改为0ABH (4) (5)是字操作,CL改为CX (6)移位数大于1时,应用CL (7)NOT指令只有一个操作数 (8)LEA指令的源操作数应为一内存单元地址

(9)此指令不用指出1 (10)45改为45H 3.下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态? MOV DL,86 ADD DL,0AAH 答: 0101,0110 + 1010,1010 = 1,0000,0000 CF=1 AF=1 ZF=1 SF=1 OF=1 4.在8086/8088CPU中可用于作地址指针的寄存器有哪些? 答:有BX,CX,DX,BP,SI,DI (IP,SP,) 5.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。下列各指令或程序段分别执行后的结果如何? (1)MOV CL,20H[BX][SI] (2)MOV [BP][DI],CX (3)LEA BX,20H[BX][SI] MOV AX,2[BX] (4)LDS SI,[BX][DI] MOV [SI],BX (5)XCHG CX,32H[BX] XCHG 20H[BX][SI],AX 答(1) (CX)=56F6H; (2) (09226H)=5678H; (3) (AX)=1E40H; (4) (1E4F6H)=0024H; (5) (09226H)=1234H,(AX)=5678H. 6.已知(SS)=09l 5H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)=80H,(BP)=470H。现有一指令“MOV AX,OPRD”,如源操作数的物理地址为095C0H,试用四种不同寻址方式改写此指令(要求上述每个已知条件至少要使用一次)。 答:(1)MOV AX,[BP] (2)MOV AX,[BP+DI+80H] (3)MOV AX,[DI+0100H] MOV AX,[SI+0220H] (4)MOV AX,[02C0H] 7.试按下列要求分别编制程序段: (1)把标志寄存器中符号位SF置‘1’。 (2)寄存器AL中高低四位互换。 (3)由寄存器AX,BX组成一个32位带符号数(AX中存放高十六位),试求这个数的负数。 (4)现有三个字节存储单元A,B,C。在不使用ADD和ADC指令的情况下,实现(A)+(B)=>C。 (5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1形成奇数)。 答:(1)MOV AH, 80H SAHF

第四章-指令与寻址方式习题解答-(2)

1. 假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻址方式下的有效位置是什么? (1)立即寻址 (2)直接寻址 (3)使用BX的寄存器寻址 (4)使用BX的间接寻址 (5)使用BX的寄存器相对寻址 (6)基址变址寻址 (7)相对基址变址寻址 答:(1)立即数寻址的有效位置是当前IP的内容; (2)直接寻址,若使用位移量D=3237H进行,则有效位置为3237H; (3)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效位置; (4)使用BX的间接寻址时,有效位置在BX寄存器中,即有效位置=637DH; (5)使用BX的寄存器相对寻址的有效位置=(BX)+D=637DH+3237H=95B4H; (6)基址变址寻址的有效位置=(BX)+(SI)=637DH+2A9BH=8E18H; (7)相对基址变址寻址的有效位置=(BX)+(SI)+D=C050H; 2. 写出把首位置为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式: (1)寄存器间接寻址 (2)寄存器相对寻址 (3)基址变址寻址 答:(1)使用寄存器间接寻址,把首位置为BLOCK的字数组的第6个字送到DX寄存器的指令为: MOV BX,BLOCK ADD BX,12 MOV DX,[BX] (2)使用寄存器相对寻址,把首位置为BLOCK的字数组的第6个字送到DX寄存器的指令为: MOV BX,BLOCK MOV DX,[BX+12] (3)使用基址变址寻址,把首位置为BLOCK的字数组的第6个字送到DX寄存器的指令为: MOV BX,BLOCK MOV SI,12 MOV DX,[BX+SI] 3. 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。 (1)MOV AX,1200H

相关文档
最新文档