搜档网
当前位置:搜档网 › 作业习题 寻址方式和指令

作业习题 寻址方式和指令

作业习题 寻址方式和指令
作业习题 寻址方式和指令

寻址方式和指令习题

一、选择题

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的值是()

(A)0040H (B)0041H (C)0042H (D)0043H

10、对程序存储器的读操作,只能使用()

(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令

二、判断题

1、MCS-51的相对转移指令最大负跳距是127B。()

2、当MCS-51上电复位时,堆栈指针SP=00H。()

3、调用子程序指令(如:LCALL)及返回指令(如:RET)与堆栈有关但与PC 无关。()

下面几条指令是否正确:

4、MOV @R1,#80H ( )

5、INC DPTR ( )

6、CLR R0 ( )

7、MOV @R1,#80H ()

8、ANL R1,#0FH ()

9、ADDC A,C ()

10、XOR P1,#31H ( )

三、问答题

1 简述MCS-51 汇编语言指令格式。

2 MCS-51指令系统主要有哪几种寻址方式?试举例说明。

3对访问内部RAM和外部RAM,各应采用哪些寻址方式?

4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH 单元)的内容如何?

5 SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。

四、编程题

1 编程将片内RAM 30H单元开始的15B的数据传送到片外RAM 3000H开始的单元中去。

2 片内RAM 30H开始的单元中有10B的二进制数,请编程求它们之和(和<256)。

3 编一个程序,将累加器中的一个字符从串行接口发送出去。

4 用查表法编一子程序,将R3中的BCD码转换成ASCII码。

5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H 单元中。

6 编一子程序,从串行接口接受一个字符。

7 利用调用子程序的方法,进行两个多字节无符号数相加。请编主程序及子程序。

8 若有一数据块是有符号数,求正数个数。编程并注释。

9 编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。

答案

一、选择题

1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)

(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003H

LJMP 2000H

ORG 000BH

LJMP 3000H

当CPU响应外部中断0后,PC的值是(B)

(A) 0003H (B)2000H (C)000BH (D)3000H

3.执行PUSH ACC指令,MCS-51完成的操作是(A)

(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=(D)(A) 2000H (B)2001H (C)2002H (D)2003H

5、51执行完MOV A,#08H后,PSW的哪一位被置位?(D)

(A)C (B)F0 (C)OV (D)P

6、下面哪条指令将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

7、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是(C)

(A) /PSEN (B)ALE (C)/RD (D)/WR

8、MOV C,#00H的寻址方式是(A)

(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址

9、ORG 0000H

AJMP 0040H

ORG 0040H

MOV SP,#00H

当执行完上边的程序后,PC的值是(D)

(A)0040H (B)0041H (C)0042H (D)0043H

10、对程序存储器的读操作,只能使用(D)

(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令

二、判断题。

1、MCS-51的相对转移指令最大负跳距是127B。(错)-128B

2、当MCS-51上电复位时,堆栈指针SP=00H。(错)(SP=07H)

3、调用子程序指令(如LCALL)及返回指令(如RET)与堆栈有关但与

PC无关。(错)子序的转返与PC也有关(PC入栈与出栈)

4、MOV @R1,80H (对)

5、INC DPTR (对)

6、CLR R0 (错) 指令系统中没有。

7、MOV @R1,#80H (对)

8、ANL R1,#0FH (错)A或direct

9、ADDC A,C (错)字节、位

10、XOR P1,#31H (对)

三、简答题

1 简述MCS-51汇编语言指令格式。

答:MCS-51汇编语言格式如下:

[标号:]操作码助记符[操作数1] [,操作数2] [,操作数3][;注释]

标号是用户定义的符号,其值代表这条指令的地址。

操作码助记符是指令系统规定的代表特定指令功能的英文缩写符。每条指令都有操作码记符。指令的操作数最多有3个,也有无操作数的指令。

注释字段是用户对程序的说明,便于对程序的阅读和理解。

2 MCS-51指令系统主要有哪几种寻址方式?试举例说明。

答:MCS-51指令操作数主要有以下7种寻址方式:

寻址方式举例

立即寻址MOV A,#16

直接寻址MOV 20H,P1

寄存器寻址MOV A,R0

寄存器间接寻址MOVX A, @DPTR

变址寻址MOVC A, @A+DPRT

相对寻址SJMP LOOP

位寻址ANL C,70H

3对访问内部RAM和外部RAM,各应采用哪些寻址方式?

答:对内部RAM的寻址方式有直接寻址、寄存器间接寻址和位寻址区的位寻址。对外部RAM的寻址方式只能用寄存器R0/R1(8位地址)或DPTR(16位地址)间接寻址。

4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH 单元)的内容如何?

MOV R0,#30H ;R0=30H

MOV A,@R0 ;A=5AH

MOV R1,A ;R1=5AH

MOV B,R1 ;B=5AH

MOV @R1,P1 ;(5AH)=7FH

MOV A,P1 ;A=7FH

MOV 40H,#20H ;(40H)=20H

MOV 30H,40H ;(30H)=20H

解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。

5 SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。

前者提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128~+127),

后者的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB 区的程序储存器中。

短转移SJMP方便PC可重定位编码,但转移范围小。而ASJMP转移范围大,但存在跳区的限制,AJMP指令只有位于2KB区的最后2个字节处时,才可跳到下一个区去。因此用AJMP指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地址在同一个2KB区域内。

四、编程题

1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。

解:STRAT:MOV R0,#30H

MOV R7,#0FH;循环次数,用#15更直观

MOV DPTR,#3000H

LOOP:MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R7,LOOP

RET

2 片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256 ).

解ADD10:MOV R0,#30H

MOV R7,#9;循环次数

MOV A,@R0

LOOP:INC R0

ADD A,@R0

DJNZ R7,LOOP

MOV 30H,A

RET

3 编一个程序,将累加器中的一个字符从串行接口发送出去.

解SOUT:MOV SCON,#40H ;设置串行接口为工作方式1,8位传送

MOV TMOD,#20H ;定时器T1工作于模式2,作波特率发生器

MOV TL1,#0E8H; ;设置波特率为1200b/s

MOV TH1,#0E8H

SETB TR1

MOV SBUF,A

JNB TI,$

CLB TI

RET

4 用查表法编一子程序,将R3中的BCD码转换成ASCII码.

解MAIN: MOV A,R3 ;待转换的数送A

MOV DPTR,#TAR ;表首地址送DPTR

MOVC A,@A+DPTR ;查ASCII码表

MOV R3,A ;查表结果送R3

RET

TAR:DB 30H,31H,32H,33H,34H

DB 35H,36H,37H,38H,39H

5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.

解START: MOV R0,#40H ;数据块首地址送R0

MOV R7,#09H ;比较次数送R7

MOV A,@R0 ;取数送A

LOOP: INC R0

MOV 30H,@R0 ;取数送30H

CJNE A,30H,NEHT ;(A)与(30H)相比NEXT: JNC BIE1 (A)≥(30H)转BIE1

MOV A,30H ;(A)<(30H),大数送A BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较

MOV 50H,A ;比较结束,大数送50H

RET

6 编一子程序,从串行接口接受一个字符.

解:START: MOV TMOD,#20H ;定时器T1工作于模式2,作波特率发生器

MOV TH1,#0E8H ;设置波特率为1200b/s

MOV TL1,#0E8H

SETB TR1 ;启动T1

MOV SCON,#50H ;串行接口工作于方式1,8位传送,置位REN,开始接收

L1: JNB RI,L1 ;等待接收数据,末接收到数据,继续等待

CLR RI ;接收到数据,清RI

MOV A,SBUF ;接收到数据送A

RET

7 利用调子程序的方法,进行两个多字节无符号数相加。请编主程序及子程序。

解:用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节数存放到R2中作循环初值。

主程序:

JAFA: MOV R0,#20H ;指向加数最低字节

MOV R1,#29H ;指向另一加数最低字节

MOV R2,#04H ;字节数作计数值

ACALL JASUB ;调用加法子程序

SJMP $

多字节加法子程序:

JASUB: CLR C

JASUB1: MOV A,@R0 ;取出加数的一个字节(4B无符号数)ADDC A,@R1 ;加上另一数的一个字节

MOV @R0,A ;保存和数

INC R0 ;指向加数的高位

INC R1 ;指向另一加数的高位

DJNZ R2,JASUB1 ;全部加完了吗?

RET

8 若片外RAM 0001H起有数据块,是有符号数,其个数在0000H单元,求正数个数,编程并注释。

解ORG 0030H

START: MOV 20H,#00H ;计正数个数计数器

MOV DPTR,#0000H ;

MOVX A,@DPTR ;数据块长度→10H

MOV 10H,A

INC DPTR ;DPTR指向第一个数的地址TWO: MOVX A,@DPTR ;取数→A

JZ ONE

JB ACC.7, ONE ;是负数转ONE,准备取下一个数

INC 20H ;是正数,正数计数器加1ONE: INC DPTR ;地址指针加1

DJNZ 10H,TWO ;判断循环是否结束

RET

9 编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮

10次后,转到下一个闪烁10次,循环不止。画出电路图。

本程序的硬件连接如图所示。当P1.0输出低电平时,LED灯亮,否则不亮。其程序如下:

MOV A,#7FH ;灯亮初值

SHIFT: LCAIL FLASH ;调闪亮10次子程序

RR A ;右移一位

SJMP SHIFT ;循环

FLASH: MOV R2,#0AH 闪烁10次计数

FLASH1: MOV P1,A ;点亮

LCALL DELAY ;延时

MOV P1,#0FFH ;熄灭

LCALL DELAY ;延时

DJNZ R2,FLASH1 ;循环

RET

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

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

相关主题