作业习题 寻址方式和指令

合集下载

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

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

1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。

DX2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。

DXA.1 B.2 C.3 D.由指令长度决定的3、下列属于合法的指令是( D ) DXA.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL4、若AX=349DH,CX=000FH。

则执行指令AND AX,CX后,AX的值是( 000DH )。

DX5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DXA、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,1 )。

DX8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。

DX9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。

DX10、下列传送指令中有语法错误的是( A )。

DXA、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX11、下面指令执行后,改变AL寄存器内容的指令是( D )。

DXA、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。

DX13、执行下面指令序列后,结果是( AX=0FF82H )。

DXMOV AL,82HCBW14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。

DXA、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( PARA )。

七种寻址方式举例例题

七种寻址方式举例例题

七种寻址方式举例例题
1. 直接寻址方式:例如,要访问内存中地址为100的数据,直接将地址100传递给内存控制器即可。

2. 立即寻址方式:例如,要将立即数5存储到寄存器R1中,直接将立即数5传递给寄存器R1即可。

3. 间接寻址方式:例如,要访问内存中地址存储在寄存器R2中的数据,先从寄存器R2中获取地址,再将该地址传递给内存控制器。

4. 寄存器寻址方式:例如,要将寄存器R3中的数据存储到寄存器R4中,直接将寄存器R3和寄存器R4传递给寄存器控制器。

5. 寄存器间接寻址方式:例如,要访问内存中地址为寄存器R5中存储的地址的数据,先从寄存器R5中获取地址,再将该地址传递给内存控制器。

6. 基址寻址方式:例如,要访问内存中基地址为寄存器R6中存储的地址加上一个偏移量的数据,先从寄存器R6中获取基地址,再将基地址加上偏移量得到目标地址,最后将目标地址传递给内存控制器。

7. 变址寻址方式:例如,要访问内存中地址为寄存器R7中存储的地址加上寄存器R8中存储的地址的数据,先从寄存器
R7中获取地址,再从寄存器R8中获取地址,最后将两个地址相加得到目标地址,将目标地址传递给内存控制器。

微机原理与接口技术:08第3章 寻址方式和指令系统3.3 习题3

微机原理与接口技术:08第3章 寻址方式和指令系统3.3 习题3

交通信息与控制工程系教案(理论教学用)课程名称微机原理与接口技术第 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。

寻址方式与指令系统部分内容总结

寻址方式与指令系统部分内容总结

指令书写格式 MOVSB/MOVSW CMPSB/CMPSW SCASB/SCASW LODSB/LODSW STOSB/STOSW REP/REPE/REPNZ/PEPNE
指令书写格式 INC d ADD d, s ADC d, s DAA (紧跟在加法指令后面) AAA (紧跟在加法指令后面) DEC d SUB d, s SBB d, s DAS (紧跟在减法指令后面) AAS (紧跟在减法指令后面) CMP d, s MUL d, s IMUL d, s
除运算 其它操作
1200[BX][SI]
[BX+1200][SI]
[BX+ SI +1200] * 方括号内包含 BP,则隐含使用 SS 提供基地址;其余隐含情况均使用 DS 提供基地址。 2、其它寻址方式 1)隐含寻址:指令中不指明操作数 2)I/O 端口寻址:8086 有直接端口寻址和间接端口寻址两种方式,端口寻址范围分别为 0-0FFH 和 0-FFFFH。 3)转移类指令寻址 4)一条指令有几种寻址方式 例:MOV AX, [SI]
相对寄存器寻址
基址变址寻址
相对基址变址寻址
3、三种寻方式总览
操作数载体 寻址方式名称
典型指令示例
说明
指令内 立即数寻址
MOV AX,100H
源数据 100H 为立即寻址
寄存器 寄存器直接寻址 MOV AX,100H 存储器直接寻址 MOV AX,[100H]
目的寄存器 AX 为寄存器直接寻址 源数据地址[100H]为存储器直接寻址
AL,AH或 AX,DX AL
AL或 AX AL,AH或 AX,DX
AH ES DS CL CX,SI,DI AL,BX
(3) 存储器操作数 • 存储器操作数可能存放在一个、二个、或四个存储器单元中。 • 操作数类型分别为:字节、字、双字。 • 存储器操作数可以作为源操作数,也可以作为目标操作数。但不允许源操作数、目标操作数 同时为存储器操作数。 • 5 种存储器选址方式主要区别是构成有效地址 EA 的方式不同。存储器操作数寻址方式: 直接寻址 寄存器间接寻址

七种寻址方式

七种寻址方式

七种寻址方式1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号。

对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP 和BP等。

对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。

这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数因而可以取得较高的运算数度。

3、直接寻址方式:操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)注:操作数一般存放在数据段所以操作数的地址由DS加上指令中直接给出的16位偏移得到。

如果采用段超越前缀,则操作数也可含在数据段外的其他段中。

例如:MOV AX,[8054]如(DS) = 2000H,则执行结果为(AX) = 3050H(物理地址=20000+8054=28054H)28054H里的内容为3050H在汇编语言指令中,可以用符号地址代替数值地址如:MOV AX,VALUE此时VALUE为存放操作数单元的符号地址。

如写成:MOV AX,[VALUE]也是可以的,两者是等效的。

如VALUE在附加段中,则应指定段超越前缀如下:MOV AX,ES:VALUE 或MOV AX,ES:[VALUE]4、寄存器间接寻址方式:操作数在寄存器中,操作数有效地址在SI、DI、BX、BP这四个寄存器之一中。

在一般情况下,如果有效地址在SI、DI和BX中,则以DS段寄存器中的内容为段值。

如果有效地址在BP中,则以SS段寄存器中的内容为段值例如:MOV AX,[SI]如果(DS) = 5000H (SI) = 1234H则物理地址= 50000 + 1234 = 51234H51234H地址中的内容为:6789H执行该指令后,(AX) = 6789H5、寄存器相对寻址方式:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和BX 8位位移量EA(有效地址) = BP +SI 16位位移量DI在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的段寄存器是SS。

寻址方式和指令系统

寻址方式和指令系统

寻址⽅式和指令系统《微机原理》复习思考题第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寻址方式和指令系统-题

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

第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的作⽤是( )。

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

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

寻址方式及指令系统习题与解答计算机科学与工程学院黄洪波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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

()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 0003HLJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断0后,PC的值是(B)(A) 0003H (B)2000H (C)000BH (D)3000H3.执行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)2003H5、51执行完MOV A,#08H后,PSW的哪一位被置位?(D)(A)C (B)F0 (C)OV (D)P6、下面哪条指令将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.47、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是(C)(A) /PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完上边的程序后,PC的值是(D)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令二、判断题。

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

(错)-128B2、当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或direct9、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,70H3对访问内部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=30HMOV A,@R0 ;A=5AHMOV R1,A ;R1=5AHMOV B,R1 ;B=5AHMOV @R1,P1 ;(5AH)=7FHMOV A,P1 ;A=7FHMOV 40H,#20H ;(40H)=20HMOV 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,#30HMOV R7,#0FH;循环次数,用#15更直观MOV DPTR,#3000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,LOOPRET2 片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256 ).解ADD10:MOV R0,#30HMOV R7,#9;循环次数MOV A,@R0LOOP:INC R0ADD A,@R0DJNZ R7,LOOPMOV 30H,ARET3 编一个程序,将累加器中的一个字符从串行接口发送出去.解SOUT:MOV SCON,#40H ;设置串行接口为工作方式1,8位传送MOV TMOD,#20H ;定时器T1工作于模式2,作波特率发生器MOV TL1,#0E8H; ;设置波特率为1200b/sMOV TH1,#0E8HSETB TR1MOV SBUF,AJNB TI,$CLB TIRET4 用查表法编一子程序,将R3中的BCD码转换成ASCII码.解MAIN: MOV A,R3 ;待转换的数送AMOV DPTR,#TAR ;表首地址送DPTRMOVC A,@A+DPTR ;查ASCII码表MOV R3,A ;查表结果送R3RETTAR:DB 30H,31H,32H,33H,34HDB 35H,36H,37H,38H,39H5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.解START: MOV R0,#40H ;数据块首地址送R0MOV R7,#09H ;比较次数送R7MOV A,@R0 ;取数送ALOOP: INC R0MOV 30H,@R0 ;取数送30HCJNE A,30H,NEHT ;(A)与(30H)相比NEXT: JNC BIE1 (A)≥(30H)转BIE1MOV A,30H ;(A)<(30H),大数送A BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较MOV 50H,A ;比较结束,大数送50HRET6 编一子程序,从串行接口接受一个字符.解:START: MOV TMOD,#20H ;定时器T1工作于模式2,作波特率发生器MOV TH1,#0E8H ;设置波特率为1200b/sMOV TL1,#0E8HSETB TR1 ;启动T1MOV SCON,#50H ;串行接口工作于方式1,8位传送,置位REN,开始接收L1: JNB RI,L1 ;等待接收数据,末接收到数据,继续等待CLR RI ;接收到数据,清RIMOV A,SBUF ;接收到数据送ARET7 利用调子程序的方法,进行两个多字节无符号数相加。

相关文档
最新文档