文档库 最新最全的文档下载
当前位置:文档库 › 寻址方式及指令系统习题与解答

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

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

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

计算机科学与工程学院黄洪波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 22.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=()。

A.0376H B.01BBH C.01BB D.0376

23.若要在BUF缓冲区中寻找与AL中不相等的数据,应使用()SCASB串操作指令。A.REPNE B.REP C.REPE D.REPNZ

24.如果“JNC L”指令的操作码放在0040H,转移后在0020H处取下一条指令的操作码,那么该条指令的位移量是()。

A.20H B.1EH C.0DEH D.0E0H

25.如果“JA P”指令的操作码放在0050H, 该指令的位移量为34H,执行完此条指令转移到取下一条指令的偏移地址为()

A.0082H B.0084H C.0086H D.0088H

26.若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=10 00H,执行“ADD AX,[BX]”指令后,AX=()。

A.8856H B.6678H C.8800H D.6600H

27.设AX、BX寄存器中存放的是有符号的二进制数据,若执行“CMP AX,BX”指令后,()L表示大于则转L。

A.JZ B.JA C.JGE D.JG

28.执行“DIV BX”指令后,()寄存器中存放商。

A.AL B.AH C.AX D.DX

29.执行“()AX,BX”指令不改变AX寄存器中的内容。

A.CMP B.ADD C.XOR D.OR

30.若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.CX

3.在下列指令中,源操作数使用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,BX

C.INC [BX] D.SHR AX,6

7.执行“CMP AX,8003H”指令后,当AX中的无符号数高于8003H时,下列指令中有效的转移指令有()。

A.JNB L B.JA L C.JG L D.JNL L

8.可与串操作指令“CMPSW”指令配合使用的重复前缀有()。

A.REP B.REPZ C.REPNZ D.REPE

9.在下列的输入/输出指令中,正确的指令有()。

A.IN AX,80H B.OUT DX,AX

C.IN AL,340 D.OUT DX,AL

10.在下列的指令中,错误的指令有()。

A.PUSH AL B.MOV AL,BX

C.PUSH 1000H D.CALL AX

11.可以用下列指令代替“LOOP L”指令的有()。

A.DEC CX B.DEC CX

JNZ L JNC L

C.DEC CX D.DEC CX

CMP CX,0 JE L

JE 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,0FH

JNZ 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,BX

2.MOV [BX],SI

3.SUB [BX],[SI]

4.CMP 5,AL

5.MOV CX,AX

6.LEA BL,A

7.SHR AL,6

8.MOV AL,[DI+SI]

9.MOV BL,200H

10.MOV AX,DATA

11.INC [BX]

12.CMP [BX],A ;A为变量

13.MOV AX,…+?

14.MOV AX,[BP+BX]

15.ADD AX,[CX]

16.OUT 400,AL

17.JNC P

18.MOV BX,,OFFSET A

19.LEA DI,A[SI]

20.CMP AX,5

五.改错题(按下列指令中的原意改正下列指令)

1.DEC [SI]

2.CMP AL,BX ;无符号数比较

3.MOV [DX],AL

4.MOV AL,300H

5.MOV [BX],[DI] ;字节操作

6.ADD AL,[CX+SI]

7.ADD AL,BX ;有符号数相加

8.PUSH AL

9.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 P

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

(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.按下列各小题的要求写出相应的一条汇编语言指令。

(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中

(2)以BX和SI寄存器作基址变址寻址方式,把该单元中的一个字传送到AX。

(3)以SI和位移量20H作寄存器相对寻址,将该单元中的内容与CX寄存器中的内

容相加,结果存入CX寄存器中。

(4)清除AX寄存器的内容,同时清除CF标志位

(5)将字单元NUM与0B6H进行比较

5.按下列各小题的要求使用相应的几条指令完成其操作。

(1)将偏移量为200H的存储单元中的数与300H相加,结果存入AX寄存器中

(2)比较AX寄存器中与BX寄存器中的16位有符号数,当AX中的内容大于BX中的内

容时转移到L。

(3)将BUF1和BUF2中的16位数据交换

(4)测试BUF字缓冲区中第15位,如果为1则转移到P

(5)将BUFI和BUF2的字相加,结果送S缓冲区

6.设BX=8234H,请说明下列两条指令的区别,执行下列各指令后BX中的内容是什么?

SHR BX,1

SAR BX,1

7.分别说明下列每组指令中的两条指令的区别。

(1)MOV BX,BUF LEA BX,BUF

(2)OR BL,0FH AND BL,0FH

(3)JMP SHORT L JMP L

(4)MOV AX,BX MOV AX,[BX]

(5)MOV AX,[BX+DI] MOV AX,[BP+DI]

8.说明下列各指令的源操作数和目的操作数的存储地方。

(1)MOV [2000H],AX

(2)ADD AX,[BX+5]

(3)LEA SI,BUF

(4)DAA

(5)MUL BL

9.指出下列无条件转移指令的转移目标地址是什么?存放在何处?

(1)JMP BX

(2)JMP WORD PTR [BX]

(3)JMP DWORD PTR [BX]

(4)JMP P

(5)JMP SHORT R

10.说明MOVSB和CMPSB各能使用哪些重复前缀?

七.程序分析题

1.现有程序段如下:

MOV AX,1234H

MOV BX,60H

ADD AX,BX

请回答:(1)该程序段完成的功能是什么?

(2)程序段执行完后AX= 。

2.现有程序段如下:

MOV AX,0603H

MOV BL,8

AAD

DIV BL

请回答:(1)该程序段完成的功能是什么?

(2)程序段执行完后AX= 。

3.设AX=0D023H,BX=9FD0H,试分析执行完如下程序段后程序转向何处?

ADD AX,BX

JNO L1

JNC L2

SUB AX,BX

JNC L3

JNO L4

JMP L5

4.程序段如下:

MOV AX,X

MOV DX,X+2

ADD AX,Y

ADC DX,Y+2

ADD AX,36

ADC DX,0

SUB AX,Z

SBB DX,Z+2

MOV W,AX

MOV W+2,DX

请回答:(1)该程序段完成的功能是什么?

(2)该程序的操作数是何类型?

(3)结果存放在何处?

5.设A为字节变量,变量中的内容分别为64H、52H;B为字节变量,变量中的内容分

别为12H、46H,现有程序段如下:

MOV AL,A

SUB AL,B

DAS

MOV C,AL

MOV AL,A+1

SBB AL,B+1

DAS

MOV C+1,AL

请回答:(1)该程序段完成的功能是什么?

(2)最后结果是什么?

6.现有程序段如下:

MOV BL,AL

MOV CL,4

SHR BL,CL

MOV A,BL

AND AL,0FH

请回答:(1)该程序段完成的功能是什么?

(2)如果AL的初值为56H,则A= ,B= 。

7.现有程序段如下:

MOV AL,8

MOV BL,7

MUL BL

AAM

ADD AX,3030H

XCHG AH,AL

MOV BUF,AX

请回答:(1)该程序段完成的功能是什么?

(2)BUF两个单元中的值分别为。

8.现有程序段如下:

MOV AX,M

MOV DX,N

SHR DX,1

RCR AX,1

请回答:(1)该程序段完成的功能是什么?

(2)若M=1234H,N=5678H,程序运行后DX= ,AX= 。

9.现有程序段如下:

XOR AX,AX

MOV AX,6342H

MOV CX,0404H

ROL AH,CL

XCHG CH,CL

请回答:(1)该程序段执行后AX= 。

(2)CF= 。

10.现有程序段如下:

MOV AX,1

MOV BX,2

MOV CX,4

MOV DX,3

L:INC AX

ADD BX,AX

SHR DX,1

LOOPNZ L

请回答:(1)该程序段的循环次数是多少?

(2)该程序段执行完后AX= ,BX= ,CX= ,DX= 。

11.现有程序段如下:

MOV CX,16

MOV BX,0

MOV DX,1

L:MOV AX,9AB8H

AND AX,DX

JZ N

INC BX

N:SHL DX,1

LOOP L

MOV M,BX

请回答:(1)该程序段完成的功能是什么?

(2)该程序段执行完后(M)= 。

12.现有程序段如下:

CLD

MOV SI,OFFSET BUF1

MOV DI,OFFSET BUF2

MOV CX,100

REP MOVSB

请回答:该程序段完成的功能是什么?

13.现有程序段如下:

CLD

LEA DI,BUF

MOV AL,20H

MOV CX,100

REPNZ SCASB

请回答:(1)该程序段完成的功能是什么?

(2)若ZF=1,表示BUF中值为20H数据

(3)若BUF的首地址为0,ZF=0,执行完该程序段后DI= 。

14.现有程序段如下:

MOV AL,0

MOV BL,1

MOV CX,10

L:ADD AL,BL

INC BL

LOOP L

请回答:(1)该程序段完成的功能是什么?

(2)该程序执行完后,AL= 。

15.现有程序段如下:

MOV AX,M

CMP AX,N

JA L

MOV AX,M+2

CMP AX,N+2

JAZ L

MOV FLG,BYTE PTR 0

JMP P

L:MOV FLG BYTE PTR 1

P:…

请回答:(1)该程序段完成的功能是什么?

(2)若M=1234H,N=5678H,则FLG= 。

16.现有程序段如下:

MOV CX,100

LEA BX,BUF

MOV DX,0

L1:MOV AL,<, /FONT>[BX]

CMP AL,10

JL L2

INC DX

L2:INC BX

LOOP L1

请回答:(1)该程序段完成的功能是什么?

(2)如果将JL改为JG,该程序段完成的功能又是什么?

17.设TAB中存放的数据为30H,31H,32H,33H,34H,35H,36H,37H,38H,

39H,现有程序段如下:

LEA BX,TAB

MOV AL,X ;X为数字0~9

XLAT

请回答:(1)该程序段完成的功能是什么?

(2)若X中的内容为4,则AL= 。

18.现有程序段如下:

LEA SI,BUF1

LEA DI,BUF2

MOV CX,100

L:MOV AL,[SI+100]

MOV [DI],AL

INC DI

DEC SI

LOOP L

请回答:该程序段完成的功能是什么?

19.现有程序段如下:

MOV AX,BUF

CMP AX,0

JNS L

MOV BX,BUF+2

NEG BX

MOV BUF+2,BX

NOT AX

ADC AX,0

MOV BUF,AX

L:…

请回答:该程序段完成的功能是什么?

20.现有程序段如下:

MOV AL,X

AND AL,0FH

JZ L

MOV BYTE PTR FLG,1

JMP M

L:MOV BYTE PTR FLG,0

M:…

请回答:该程序段完成的功能是什么?

八.程序设计题

1.使用串操作指令,将BUF缓冲区中的100个字节清0。

2.比较5个字节的字符串A和B,若两个串相等则字节标志单元FLG置0;否则清1。

3.设BUF缓冲区中有100个字数据。编写程序段统计100个字数据中数据为0的个数,

并将统计的结果存放在DL寄存器中。

4.计算Z=(X+5)*Y+30,(X,Y为无符号字节数据)。

5.将DX:AX:BX中的48位数乘以2。

6.将有100个字符的缓冲区BUF中的$符号用空格(20H)代替。

7.将有符号的字数据A和B中的大者存入C中。

8.测字单元A中的第四位是否为0,是则FLG置1,否则清0。

9.将DX:AX中的32位数据逻辑左移2位。

10.将100个元素的字数组A中的每个元素减1。

参考答案

一.单项选择题

1.B 2.A 3.B 4.C 5.D 6.B 7.C 8.B 9.C 10.A 11.B 12.B 13.B 14.D 15.A 16.B 17.D 18.C 19.C 20.B 21.D 22.B 23.C 24.C 25.C 26.A 27.D 28.C 29.A 30.C

二.多项选择题

1.BCD 2.BC 3.AD 4.BCD 5.ABD 6.ABCD 7.AB 8.BCD 9.ABD 10.ABCD

11.AC

三.填空题

1.源

2.20

3.DS(数据)

4.SS(堆栈)

5.ES(附加)

6.SS(堆栈)

7.基址加变址

8.寄存器相对

9.段间间接

10.4

11.高,低,后进先出(先进后出)

12.目标地址,SP+2

13.ADC(带进位加)

14.标志位(PSW)

15.CF

16.0EFH

17.不影响

18.CF(SF),JA(JB、JC、JNC、JS、JNS)

19.DX,AX

20.AL

21.0FF84H

22.1234H

23.低4位

24.CL

25.0F8H,0

26.源,目的

27.REPNE(REPNZ)

28.–128~127,补码

29.IP

30.CS和IP

四.判断题

1.错,两个操作数的类型不一致。

2.对

3.错,双操作数不能同时是内存中的数据。

4.错,5是立即数,不能作目标地址。

5.对

6.错,A的偏移地址是16位的,而BL是8位的寄存器,两个操作数的类型不一致。

7.错,移位指令的移位位数大于1时,其移位位数应存放在CL寄存器中。

8.错,DI和SI不能同时使用在一种寻址方式中。

9.错,200H超出一个字节的范围,两个操作数的类型不一致。

10.对

11.错,[BX]是字节还是字操作不明确,有二义性。

12.错,双操作数不能同时是内存中的数据。

13.对

14.错,BP和BX不能同时使用。

15.错,CX不能作寄存器间接寻址。

16.错,OUT指令的地址超过255时,必使用DX寄存器作为间接寻址的寄存器。

17.对

18.对

19.对

20.对

五.改错题

1.DEC BYTE PTR [SI] 或DEC WORD PTR [SI]

2.MOV AH,0CMP AX,BX

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

寻址方式及指令系统习题与解答 计算机科学与工程学院黄洪波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.无溢出但有进位

习题(指令与编程及答案)

一.单项选择题 1. ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 2. 当CPU响应外部中断0后,PC的值是()。 A.0003H B. 2000H C. 000BH D. 3000H 3. MCS-51的相对转移指令的最大负跳距离为()。 A.2KB B. 128B C.127B D. 256B 4. 以下运算中对溢出标志0V没有影响或不受影响的运算是()。 A.逻辑运算 B. 符号数加减运算 C. 比较数据大小运算 D. 除法运算 5. 产生PSEN信号的指令是()。 A . MOVX A ,@DPTR B. MOVX @DPTR, A C. MOVC A , @A+PC D. MOVX A, @A+DPTR 6. MOVX A , @DPTR指令中的源操作数的寻址方式是()。 A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 7. 将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 8. 指令AJMP的跳转范围是()。 A .256 B B.1KB C.2KB D.64KB 9. 6264芯片是()。 A.E2PROM B.RAM C .Flash ROM D .EPROM 10. 下面那条指令产生WR信号()。 A.MOVX A , @DPTR B.MOVC A , @A+DPTR C.MOVC A , @A+PC D.MOVX @DPTR , A 11. 执行LCALL 4000H指令时,MCS-51所完成的操作是()。 A.保护PC B.保护现场 C.4000H →PC D.PC+3入栈,4000H → PC 12. 下列指令中可能改变Cy的有()。

汇编语言设计复习题(第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语句表示程序执行到此结束

8086汇编语言指令的寻址方式有哪几类

1. 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 寄存器寻址最快 7. 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。 XCHG CS , AX ;不能修改CS MOV [BX] , [1000] ;不能在两个内存单元之间直接进行数据传送 XCHG BX , IP ;不能用名字直接访问IP PUSH CS POP CS ;不允许直接修改CS值 IN BX , DX ;输入数据必须使用累加器AL或AX MOV BYTE [BX] , 1000 ;格式错误,且超范围,应为MOV word PTR [BX],1000 MOV CS , [1000];不允许直接修改CS值 20.带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0006后,SP的值为多少? 利用堆栈传递参数时使用;对于近调用SP=3008H,对于远调用SP=300AH 27.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行 PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么? 栈顶地址:SS:SP,物理地址为:2FF00H;PUSH 完以后栈顶地址为:SS:SP=2010:FDFEH,即物理地址为:2FEFEH,内容为:57H 34H(由低地址到高地址) B P7 5. 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(S1)=0002H,(31100H)=52H, (31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H, (32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容: (1) MOV AX,BX (2) MOV AX,[BX] (3) MOV AX,4200H (4) MOV AX,[2800H] (5) MOV AX,1100H[BX] (6) MOV AX,[1160H+SI] 9. 分别执行下列各指令组,写出AX的内容: (1) MOV AX,93A4H NEG AX 73A4-8c5c,e689-1977 (AX)=6C5CH (2) XY DW "AB" MOV AX,XY (AX)=4142H (3) MOV AX,2B7EH MOV CX,4DB5H ADD AX,CX (AX)=7933H (4) XA DW 0BD57H MOV AX,0FBCDH AND AX,XA (AX)=B945H (5) STC MOV BX, 0B69FH MOV AX, 43A2H SBB AX, BX

作业习题 寻址方式和指令

寻址方式和指令习题 一、选择题 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

第 6章 寻址方式和汇编指令 第6章
6.1、寻址方式 6.2、汇编语言指令集 6.3、汇编源程序

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
▲ 汇编指令是可执行指令,每条指令对应一条机器 码,用以控制处理器中的执行部件进行各种操 作。 ▲ TMS320F281X系列的汇编指令有150多条。 ▲ 它们支持各种信号处理运算,同时也提供了应用 中所需要的多级处理和过程控制功能。 ▲ 寻址方式是指寻找指令中操作数地址的方式。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
TMS320C28x指令集采用7种存储器寻址方式: ▲ 直接寻址方式 ▲ 堆栈寻址方式 ▲ 间接寻址方式 ▲ 寄存器寻址方式 ▲ 数据/程序/IO空间立即寻址方式 ▲ 程序空间间接寻址 ▲ 字节寻址方式

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
F2812 的大多数指令利用操作码中的8位字段来选择寻 址方式和对寻址方式进行修改.在 F2812 指令系统中,这个8 位字段用于以下寻址方式: (1)loc16 。 为16位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
(2)loc32 。 为32位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
以上7种寻址方式都与“loc16/loc32”组合起来使用。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
寻址方式选择位
由 于 F2812 提 供 了 多 种 寻 址 方 式 , 因 此 用 寻 址 方 式 选 择 位 ( AMODE )来选择8位字段( loc16/loc32 )的解码。该 位属于状态寄存器ST1。寻址方式可以大致归类如下: ▲ AMODE=0——该方式是复位后的默认方式,也是F2812的C/C++编译
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
对与loc16或者loc32字段,其可用的寻址方式总结如P375所示

计算机组成原理,指令系统,练习题

单项选择题 1 在CPU执行指令的过程中,指令的地址由___B__给出。 A 程序计数器PC B 指令的地址码字段 C 操作系统 D 程序员 2 下列关于指令的功能及分类叙述正确的是__B___。 A 算术与逻辑运算指令,通常完成算术运算或逻辑运算,都需要两个数据 B 移位操作指令,通常用于把指定的两个操作数左移或右移一位 C 转移指令,子程序调用与返回指令,用于解决数据调用次序的需要 D 特权指令,通常仅用于系统软件,这类指令一般不提供给用户 3 零地址的运算类指令在指令格式中不给出操作数的地址,参加的两个操作数来自__C__。A累加器和寄存器 B 累加器和暂存器 C 堆栈的栈顶和次栈顶单元 D 堆栈的栈顶单元和暂存器 4 下列一地址运算类指令的叙述中,正确的是_____。 A 仅有一个操作数,其地址由指令的地址码提供 B 可能有一个操作数,也可能有两个操作数 C 一定有两个操作数,其中一个操作数是隐含的 D 指令的地址码字段存放的一定是操作码 5 关于二地址指令一下论述正确的是_____。 A 二地址指令中,运算结果通常存放在其中一个地址码所提供的地址中 B二地址指令中,指令的地址码字段存放的一定是操作数 C二地址指令中,指令的地址码字段存放的一定是寄存器号 D二地址指令中,指令的地址码字段存放的一定是操作数地址 6 单字长四地址指令OP A1、A2、A3、A4的功能为(A1)OP(A2)→A3,且A4给出下一条指令地址,假设A1、A2、A3、A4都为主存储器地址,则完成上述指令需访存_____。 A 1 B 2 C 3 D 4 7 在指令格式设计中,采用扩展操作码的目的是_____。 A 增加指令长度 B 增加地址码数量NN C 增加指令数量 D 增加寻址空间 8 某机器的指令字长为16位,有8个通用寄存器,有8种寻址方式,单操作数指令最多有_____个,双操作数指令最多有_____个。 A 1024 16 B 2048 32 C 256 64 D 1024 32 9 指令寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现_____。 A 程序浮动 B 程序的无条件浮动和条件浮动 C程序的无条件转移和条件转移 D 程序的调用 10 某机器指令字长为16位,主存按字节编址,取指令时,每取一个字节PC自动加1,。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址D=40H。那么取指令后及指令执行后PC内容为_____。 A 2000H,2042H B 2002H,2040H C 2002H,2042H D 2000H,2040H 11 指令系统中采用不同的寻址方式的目的主要_____。 A 可降低指令译码难度 B 缩短指令字长,扩大寻址空间,提高编程灵活性

寻址方式和指令系统

《微机原理》复习思考题第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], 2000 MOV WORD PTR [BX], 2000 3.6 使用堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注 意什么问题? 3.7 下面这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。 XCHG CS, AX MOV [BX], [1000] XCHG BX, IP PUSH CS POP CS IN BX, DX MOV BYTE[BX], 1000 MOV CS, [1000] 3.8 8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。 3.9 以下是格雷码的编码表 0——0000 1——0001 2——0011 3——0010 4——0110 5——0111 6——0101 7——0100 8——1100 9——1101 请用换码指令和其他指令设计一个程序段,实现格雷码往ASCII的转换。 3.10 用加法指令设计一个简单程序,实现两个16位十进制数的加法,结果放在被加数单元。 3.11 为什么用增量指令或减量指令设计程序时,在这类指令后面不用进位标志CF作为判断依 据?

第5章 指令系统习题

第5章指令系统 〔习题5.1〕简答题 (1)定长指令字和定长操作码是一回事吗? (2)什么是Load-Store指令集结构? (3)为什么将查找操作数的方法称为数据寻“址”方式? (4)是什么特点决定了目标地址的相对寻址方式应用最多? (5)堆栈的存取原则是什么? (6)IA-32处理器的INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数? (7)IA-32处理器的乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算? (8)为什么判断无符号数大小和有符号大小的条件转移指令不同? (9)汇编语言的标识符大小写不敏感意味着什么? (10)为什么说RISC是计算机结构上的革新? 〔习题5.2〕判断题 (1)存储器寻址方式的操作数当然在主存了。 (2)堆栈的操作原则是“先进后出”,压入数据是PUSH指令、弹出数据是POP指令。 (3)空操作NOP指令其实根本没有指令。 (4)指令指针或者还包括代码段寄存器值的改变将引起程序流程的改变。 (5)JMP指令对应高级语言的GOTO语句,所以不应使用。 (6)IA-32处理器的条件转移指令Jcc要利用标志作为条件。 (7)处理器的传送指令MOV属于汇编语言的执行性语句。 (8)MASM汇编语言的注释用分号开始,但不能用中文分号。 (9)通常,RISC处理器只有“取数LOAD”和“存数STORE”指令访问存储器。 (10)RISC的指令条数少、指令简单、格式固定,所以编译程序也就容易实现,并且不需要优化。 〔习题5.3〕填空题 (1)JMP指令根据目标地址的转移范围和寻址方式,可以分成四种类型:段内转移、__________,段内转移、__________和段间转移、__________,段间转移、__________。 (2)IA-32处理器将ESI寄存器内容压入堆栈的指令是__________,将堆栈顶部数据弹出到EDI寄存器的指令是__________。 (3)IA-32处理器的指令“XOR EAX, EAX”和“SUB EAX, EAX”执行后,EAX=__________,CF=OF=__________。而指令“MOV EAX, 0”执行后,EAX=__________,CF和OF没有变化。 (4)欲将EDX内的无符号数除以16,可以使用指令“SHR EDX, __________”,其中后一个操作数是一个立即数。 (5)“CMP EAX,3721H”指令之后是JZ指令,发生转移的条件是EAX=__________,此时ZF=__________。 (6)主程序调用子程序需要用__________指令,子程序最后的返回指令是__________。 (7)在IA-32指令“ADD EDX,5”中,指令助记符是__________,目的操作数是__________,另一个操作数采用__________寻址方式。 (8)MASM要求汇编语言源程序文件的扩展名是___________,汇编产生扩展名为OBJ

习题(指令与编程及答案)

指令与编程及答案 一.单项选择题 1. ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 2. 当CPU响应外部中断0后,PC的值是(A)。 A.0003H B. 2000H C. 000BH D. 3000H 3. MCS-51的相对转移指令的最大负跳距离为( B )。 A.2KB B. 128B C.127B D. 256B 4. 以下运算中对溢出标志0V没有影响或不受影响的运算是()。 A.逻辑运算 B. 符号数加减运算 C. 比较数据大小运算 D. 除法运算 5. 产生PSEN信号的指令是( C )。 A . MOVX A,@DPTR B. MOVX @DPTR, A C. MOVC A , @A+PC D. MOVX A, @A+DPTR 6. MOVX A , @DPTR指令中的源操作数的寻址方式是(B )。 A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 7. 将MCS-51的工作寄存器置成3区的指令是(B )。 A. MOV PSW , #13H B.MOV PSW , #18H C. SETB PSW.4 ,CLR PSW.3 D.SETB PSW.3 ,CLR PSW.4 8. 指令AJMP的跳转范围是()。 A .256 B B.1KB C.2KB D.64KB 9. 6264芯片是()。 A.E2PROM B.RAM C .Flash ROM D .EPROM 10. 下面那条指令产生WR信号( D )。 A.MOVX A , @DPTR B.MOVC A , @A+DPTR C.MOVC A , @A+PC D.MOVX @DPTR , A 11. 执行LCALL 4000H指令时,MCS-51所完成的操作是( D )。 A.保护PC B.保护现场 C.4000H →PC D.PC+3入栈,4000H → PC

第五章 指令系统习题

第五章指令系统 一、选择题 1、采用直接寻址,操作数在中。 A、主存 B、寄存器 C、硬盘 D、光盘 2、为了缩短指令中某个地址段的位数,有效的方法是采取。 A、立即寻址 B、变址寻址 C、间接寻址 D、寄存器寻址 3、指令系统采用不同寻址方式的目的是。 A、实现存储程序和程序控制 B、缩短指令长度,扩大寻址空间,提高编程灵活性 C、可以直接访问外存 D、提供扩展操作码的可能,并降低指令译码难度 4、假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是300和400,则方式下访问到的操作数为200。 A、直接寻址200 B、寄存器间接寻址(R) C、存储器间接寻址(200) D、寄存器寻址R 5、输入输出指令的功能是。 A、进行算术运算和逻辑运算 B、进行主存和CPU之间的数据传送 C、进行I/O设备和CPU之间的数据传送 D、改变程序执行的顺序 6、下列关于RISC的描述中,不正确的是。 A、只选用简单的,使用频率高的指令,所以采用RISC的CPU的性能较差,不能运行复杂的指令 B、指令长度固定,指令格式和寻址方式少 C、采用硬布线逻辑,提高指令执行的速度 D、采用指令流水线技术,大部分指令都能在一个机器周期中完成。 7、间接寻址是指。 A、指令中直接给出操作数地址 B、指令中直接给出操作数 C、指令中间接给出操作数 D、指令中间接给出操作数的地址 8、基址寻址方式中,操作数的有效地址等于。 A、基址寄存器的内容加上形式地址(偏移量) B、变址寄存器的内容加上形式地址(偏移量) C、程序计数器的内容加上形式地址(偏移量) D、堆栈寄存器的内容加上形式地址(偏移量) 8.通常指令编码的第一个字段是__ __ A.操作 B.指令 C.操作码 D.控制码 9.堆栈常用于 _ A.程序转移 B.输入输出 C.数据移位 D.保护程序现场 10.在堆栈中保持不变的是_ _ A.栈指针 B.栈底 C.栈顶 D.栈中数据 11.设寄存器R=1000,地址1000处的值为2000,2000处为3000,PC的值为4000,用相对寻址方式,-2000(PC)的操作数是__ __ A.4000 B.3000

指令格式及寻址方式

指令格式及寻址方式 一、指令格式 指令的表示方法称为指令格式,它包括指令的长度和指令内部信息的安排等内容。一条指令一船由两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作,而操作效则表示指令操作的对象。操作数可以直接是一个数(立即数),也可以是一个数据所在的空间地址,即在执行指令时从指定的地址空间取出操作数。 单片机中的指令并不是固定的长度,对于不同的指令,指令的字节数不同。MC5—5l 单 片机用机器语言表示的指令格式按字节划分,有一字节指令、两字节指令和三字节指令三种。 1.一字节指令 一字节指令中的8位二进制代码既包含操作码的信息,也包含操作数的信息。在一字节指令中,有些指令的指令码中隐合着对某一寄存器的操作,NXP代理商无需再具体指定操作数。例如数 据指针DPTR加1指令;INC DPTR,其指令码为: 另外有些指令的操作数在通用寄存器中,由指令码中的rrr三位的不同编码来指定该 寄存器。例如:寄存器向氮加器A传送数据指令:MOV A,Rn,其指令码为: 其中,高5位表示操作内容——传送,最低三位rrr的不同二进制编码用来表示从哪一个寄 存器取数。 2.二字节指令。 二字节指令中的第一个字表尔操作码,第二个字节表示操作数,这里的操作数既可能是立即数,也可能是地址。其指令格式为: 3.三字节指令 三节节指令中,第一字节表示操作码,另两个字节是操作数,其指令格式为

绝大多数指令执行时都需要使用操作数,因此如何寻找存放操作数的单元地址和提取操作数就变得十分重要。Atmel代理所谓寻址方式就是如何找到存放操作数的地址,把操作数提取出来 的方法。 寻址方式与计算机的存储器空间结构有关,寻址方式越多,则计算机的功能越强,灵活性也越大,能更有效地处理各种数据,但指令系统也会相应的复杂。 MCS-51单片机共有七种寻址方式。下面分别加以介绍。 1.寄存器寻址 寄存器寻址是将所选定的工作寄存器组中的8个工作寄存器(R0—R7)的内容作为操 作数。指令操作码的低三位的不同组合分别代表R0—R7中的某一个。A、B、DPTR和C(位累加器)也能作为寄存器来寻址。例如: 这里源操作数和目标操作数均采用寄存器寻址.寄存器中的内容为操作数。 2.直接寻址 在直接寻址方式中、操作数由指令中的一个8位地址单元所指定。只有内部RAM中的00H~7FH地址单元和80H~FFH地址中的专用寄存器可直接寻址,且直接寻址是访问专 用寄存器的唯一方法。 采用直接寻址方式的指令是双字节指令,第一个字节是操作码,第二个字节是内部RAM的低128字节或专用寄存器的地址。例如: 此例中,源操作数采用直接寻址方式,表示把内部RAM中30H单元的内容送入A。指令代码为E5H、30H。 3.寄存器间接寻址 在寄存器间接寻址方式个,指令中给出的杏存器的内容为操作数的地址,而不是操作数本身。内部RAM和外部RAM都可以间接寻址。 当访问内部RAM或外部RAM的低256字节时,间址寄存器可以是选中寄存器组中的R0或R1,即内R0或R1间接给出操作数所在的地址‘ 当访问外部RAM时,16位间址寄存器只能使用16位数据指针寄存器DPTR,这时可对整个外部RAM空间(64KB)寻址。 PUSH和POP指令的执行也采用寄存器间接寻址,这时堆栈指针SP用作间址寄存 器。堆栈指针可驻留在内部RAM的任何地方;例如:

寻址方式和指令优化习题

一、名词解释 1、计算机系统结构 2、透明性 3、模拟 二、 假设系统某一部件的处理速度加快9 倍,但该部件的原处理时间仅为整个运行时间的45% ,则采用加快措施后能使整个系统的性能提高多少?如果部件改进后获得的加速比变为SP=5.5 ,问改进前的执行时间占改进前执行时间的百分比是多少? 三、 某机器有10条指令,频度分别为:0.25、0.2、0.15、0.1、0.08、0.08、0.05、0.04、0.03、0.02、。要求写出等长二进制编码、Huffman编码、3/7扩展编码,求出三种编码的平均码长。?四、 有一个Cache—主存层次:主存分8块(0~7),Cache为4块(0~3)。采用全相联映象。已知页面地址流为2,7,4,2,0,1,5,4,1,2,6,5,6,0,2。试用FIFO 、LRU和OPT 替换算法,分别画出替换示意图、求出命中率H、指出替换几次。 答案: 一、 1、计算机系统结构:机器语言程序员所看到的传统机器级所具有的属性,它包括概念性结构和功能特性两个方面。 2、透明性:在计算机技术中,本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性 3、模拟:是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。 二、

三、 等Huffman3/7 10.250000000 20.20001001 30.150010010 40.10011011 50.080100100 60.080101101 70.050110110 80.04011111100 90.0310******* 100.021******** 0.020.030.040.050.080.080.10.150.20.250.05 0.040.050.050.080.080.10.150.20.250.09 0.050.080.080.090.10.150.20.250.13 0.080.090.10.130.150.20.250.17 0.10.130.150.170.20.250.23 0.150.170.20.230.250.32 0.20.230.250.320.43 0.250.320.430.57 0.430.571 1

汇编习题及答案

第三章 8086的寻址方式和指令系统 1. 指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设 VAR1, VAR2为字变量, L1为标号): (1)MOV SI,100 (2)MOV BX,VAR1[SI] (3)MOV AX, [BX] (4)MOV AL, [DX] (5)MOV BP, AL (6)MOV VAR1, VAR2 (7)MOV CS, AX (8)MOV DS, 0100H (9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2 (11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2 (13)SUB [DI], 78H (14)MOVS VAR1, VAR2 (15)PUSH 100H (16)POP CS (17)XCHG AX, ES (18)MOV DS, CS (19)JMP L1+5 (20)DIV AX, 10 (21)SHL BL, 2 (22)MOV AL, 15+23 (23)MUL CX (24)XCHG CL, [SI] (25)ADC CS:[0100], AH (26)SBB VAR1-5,154 参考答案:(1)MOV SI,100 ;指令正确,源:立即数寻址,目的:寄存器寻址(2)MOV BX,VAR1[SI] ;指令正确,源:寄存器相对寻址,目的:寄存器寻址 (3)MOV AX, [BX] ;指令正确,源:寄存器间接寻址,目的:寄存器寻址 (4)MOV AL, [DX] ;指令错误,DX不能用作为地址寄存器 (5)MOV BP, AL ;指令错误,类型不一致 (6)MOV VAR1, VAR2 ;指令错误,MOV指令不能从存储器到存储器传送 (7)MOV CS, AX ;指令错误,CS不能用作为目的操作数 (8)MOV DS, 0100H ;指令错误,MOV指令不能将立即数传送到段寄存器 (9)MOV [BX][SI], 1 ;指令错误,类型不定 (10)MOV AX, VAR1+VAR2 ;指令错误,MOV指令中不能完成加法运算 (11)ADD AX, LENGTH VAR1 ;指令正确,源:立即数寻址,目的:寄存器寻址 (12)OR BL, TYPE VAR2 ;指令正确,源:立即数寻址,目的:寄存器寻址 (13)SUB [DI], 78H ;指令错误,类型不定 (14)MOVS VAR1, VAR2 ;指令正确,源:隐含寻址,目的:隐含寻址 (15)PUSH 100H ;指令错误,立即数不能直接压入堆栈 (16)POP CS ;指令错误,CS不能用作为目的操作数 (17)XCHG AX, ES ;指令错误,XCHG指令中不能使用段寄存器 (18)MOV DS, CS ;指令错误,MOV指令不能从段寄存器到段寄存器 (19)JMP L1+5 ;指令正确,段内直接转移 (20)DIV AX, 10 ;指令错误,DIV指令格式错误 (21)SHL BL, 2 ;指令错误,移位指令的移位数要么是1,要么是CL (22)MOV AL, 15+23 ;指令正确,源:立即数寻址,目的:寄存器寻址 (23)MUL CX ;指令正确,源:寄存器寻址,目的:隐含寻址 (24)XCHG CL, [SI] ;指令正确,源:寄存器间接寻址,目的:寄存器寻址 (25)ADC CS:[0100], AH ;指令正确,源:寄存器寻址,目的:直接寻址 (26)SBB VAR1-5,154 ;指令正确,源:立即数寻址,目的:直接寻址

MCS-51单片机的寻址方式和指令系统

MCS-51单片机指令系统与汇编语言程序设计 伪指令............................................. (2) MCS-51单片机的寻址方式 (4) MCS-51单片机的指令系统 (7) 数据传送指令 (8) 算数运算指令 (10) 逻辑运算及移位指令 (12) 控制转移指令 (13) 位操作指令 (18)

指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。完整的指令格式如下: [标号:] 操作码 [操作数] [,操作数] [;注释] 标号: 代表指令的具体地址 操作码: 又称助记符,英文缩写 操作数: 操作数中常数可以用二、八、十、十六进制表示,如果用十六进制表示,最高位用A以上的数开头时,前面须加0,否则机器不识别 注释:增加程序的可读性 伪指令 (1)定位伪指令ORG 格式:ORG n 其中:n通常为绝对地址,可以是十六进制数、标号或表达式。 功能:规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。 例如程序:ORG 1000H START:MOV A,#20H MOV B,#30H ┇ (2)结束汇编伪指令END 格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。 (3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以是常数、地址、标号或表达式。在使用时,必须先赋值后使用。 “字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。 (4)定义字节伪指令DB

微机原理与接口技术习题答案 - 副本

第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 AX,[SI][DI] ;SI、DI不能成为基址加变址 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.10 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和

指令与寻址方式习题

指令与寻址方式习题解答 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

相关文档
相关文档 最新文档