第三章8051汇编指令_第1页
第三章8051汇编指令_第2页
第三章8051汇编指令_第3页
第三章8051汇编指令_第4页
第三章8051汇编指令_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第三章 8051单片机汇编指令3.1 MCS-51指令系统概述指令系统概述 对对 8051 单片机编程可以使用单片机编程可以使用 机器语言、机器语言、汇编语言及高级语言汇编语言及高级语言C语言。但单片机并不语言。但单片机并不能直接执行汇编语言和高级语言,都必须通过能直接执行汇编语言和高级语言,都必须通过汇编器汇编器“翻译翻译”成为二进制机器码方能执行。成为二进制机器码方能执行。2指令:就是能完成特定功能的命令。指令系统:CPU所能执行的各种指令的集合。51单片机基本指令共111条,其中:单字节指令 49条双字节指令 45条三字节指令 17条3从指令执行时间看,单机器周期指令 64条双机器周期

2、指令 45条4机器周期指令 2条4 汇编指令中常用的一些符号注释汇编指令中常用的一些符号注释 Rn 选中的工作寄存器是选中的工作寄存器是R0-R7中任意一个。中任意一个。Ri 选中的寄存器是选中的寄存器是R0和和R1中任意一个。中任意一个。direct 内部数据存储单元的内部数据存储单元的8位地址。包含位地址。包含内部存储单元地址和特殊功能寄存地址。内部存储单元地址和特殊功能寄存地址。#data 指令中的指令中的8位常数。位常数。#data16 指令中的指令中的16位常数。位常数。5addr16 16位目的地址。位目的地址。addr11 11位目的地地址。位目的地地址。 间接寄存器寻址或基址寄

3、存器的前缀。间接寄存器寻址或基址寄存器的前缀。DPTR 数据地址指针。数据地址指针。bit直接寻址位地址。直接寻址位地址。6A 累加器累加器A。 B 寄存器寄存器B。C 进位标志位进位标志位CY。(x) X地址中的内容。地址中的内容。 (x) 由由X地址中的内容为地址,其地址单地址中的内容为地址,其地址单元中的内容。元中的内容。7汇编语言对不同数制的表示方式汇编语言对不同数制的表示方式数据的表示方式:数据的表示方式:十进制立即数:十进制立即数:MOV A,#123十六进制:十六进制: MOV A,#7FH二进制:二进制: MOV A,#10011011B直接地址的表示方式:直接地址的表示方式:

4、十进制立即数:十进制立即数:MOV A,123十六进制:十六进制: MOV A,7FH二进制:二进制: MOV A,10011011B8指令格式:指令格式:一条汇编语言指令中最多包含一条汇编语言指令中最多包含 4 个区段个区段, 如下如下所示所示: 标号标号: 操作码操作码 操作数操作数 ; 注释注释其中,操作数又分为:其中,操作数又分为:原操作数原操作数和和目的操作目的操作数数;两个操作数之间用;两个操作数之间用 , 分开分开目的操作数源操作数例如:例如: MOV A , #2893.2 MCS-51的寻址方式的寻址方式 寻址方式寻址方式就是就是CPU寻找操作数寻找操作数或操作数或操作数地址

5、的方式。地址的方式。 在在 MCS -51单片机指令系统中单片机指令系统中, 有以下有以下 7 种种寻址方式寻址方式: (1) 立即数寻址立即数寻址; (2) 直接寻址直接寻址; (3) 寄存器寻址寄存器寻址;10 (4) 寄存器间接寻址寄存器间接寻址; (5) 基址寄存器变址寄存器间接寻址基址寄存器变址寄存器间接寻址; (6) 相对寻址相对寻址; (7) 位寻址。位寻址。11 1.立即数寻址立即数寻址指令中指令中原操作数直接以数据出现原操作数直接以数据出现。为了与直。为了与直接寻址方式相区别,在立即数前加上接寻址方式相区别,在立即数前加上“#”符号符号 例如:例如: MOV A,#0EH M

6、OV A,#20 MOV A,#k122.直接寻址直接寻址 指令中原操作数指令中原操作数直接以存储单元的地址直接以存储单元的地址出现。出现。 MOV A,direct 例如:例如: MOV A,68H13 3.寄存器寻址寄存器寻址 寄存器寻址可以对寄存器寻址可以对8个工作寄存器个工作寄存器R0-R7进进行操作,也可以对寄存器行操作,也可以对寄存器A、B等进行操作。等进行操作。例如:例如: MOV R1,#10 MOV A,R1 MOV R2,A MOV B,R2 MOV R5,B14 4.寄存器间接寻址寄存器间接寻址 访问访问RAM存储器的存储器的低低128B单元内容,单元内容,通过通过R0和

7、和R1作为间接寄存器作为间接寄存器。 例如:例如: MOV A,R0 外部数据存储器的空间为外部数据存储器的空间为64kB,可采用,可采用DPTR作为间址寄存器进行访问,指令如下:作为间址寄存器进行访问,指令如下: MOVX A,DPTR155.变址寻址变址寻址(基地址变址寄存器间接寻址)(基地址变址寄存器间接寻址) 规定规定DPTR或或PC为变址寄存器,为变址寄存器,A为地址为地址偏移量。偏移量。 变址寻址方式只能访问程序存储器变址寻址方式只能访问程序存储器。 MOVC A,A+DPTR MOVC A,A+PC16例如:例如: MOV DPTR,#2000H MOV A,#03H MOVC

8、A,A+DPTR 176.位寻址位寻址指令中操作数指令中操作数是是8位二进制数中的某一位。位二进制数中的某一位。 对片内对片内RAM的位寻址区(的位寻址区(20H2FH)和可位寻址的专用寄存器进行位操作。和可位寻址的专用寄存器进行位操作。例如:例如: CLR C CPL C SETB P1.2 作业:写出作业:写出51单片机可位寻址的专用寄存器有哪单片机可位寻址的专用寄存器有哪些?些?187.相对寻址相对寻址 以以PC的内容为基址,加上给出的偏移的内容为基址,加上给出的偏移量作为转移地址,从而实现程序的转移。这量作为转移地址,从而实现程序的转移。这种寻址方式主要用于种寻址方式主要用于转移指令转

9、移指令。例如:例如: S: MOV A,#20 . . . . . AJMP S软件使用介绍单片机编程软件:KEIL19电路仿真软件:PROTEUS电路仿真软件PCB设计软件实例20KEIL 使用1、新建工程:工程菜单-新建工程2、新建程序文件:1)文件菜单-新建文件; 2)保持文件,输入文件名,后缀为 *.a(汇编程序) 或 *.c(C语言程序)3、添加程序文件到工程中4、在程序文件中编写程序5、编译程序:工程菜单- Rebuild all target files(重新编译所有的源文件并且编译应用程序)21PROTEUS 使用 1、打开软件:打开ISIS 软件222、新建原理图:文件菜单-

10、新建设计3、添加软件并绘制原理图4、加载程序文件 *.HEX文件:双击原理图上的单片机,在弹出对话框中添加程序文件5、电路仿真:点击播放键开始仿真233.3 MCS-51指令系统指令系统按指令功能分,指令系统可以分为按指令功能分,指令系统可以分为5大类:大类:1、数据传输指令:、数据传输指令:28条条2、算术运算指令:、算术运算指令:24条条3、逻辑运算及移位指令:、逻辑运算及移位指令:25条条4、控制转移指令:、控制转移指令:17条条5、位操作指令:、位操作指令:17共共111条指令。条指令。24数据传输指令码: MOV ; MOVC ; MOVX PUSH ; POP XCH ; XCHD

11、算术运算指令码: ADD ; ADDC ; INC ; DA ; SUBB ; DEC MUL ; DIV逻辑运算指令码: CLR ; CPL ; RL ; RLC ; RR ; RRC ; SWAP ANL ; ORL ; XRL ; 25控制转移类指令码: AJMP ; SJMP ; LJMP ; JMP JZ ; JNZ ; CJNE ; DJNZ ACALL ; LCALL ; RET ; RETI NOP位操作指令码: MOV ; CLR ; CPL ; SETB ANL ; ORL JC ; JNC ; JB ; JNB ; JBC26 1. 以累加器以累加器A为为目的目的操作数类

12、指令(操作数类指令(4条)条) MOV A, direct ;(data)(A) MOV A,#data ;#data(A) MOV A,Rn ;(Rn)(A) MOV A,Ri ;(Ri)(A)3.3.1 数据传送指令数据传送指令 该类该类不影响不影响标志标志C,AC和和OV,但可能会,但可能会对奇偶标志对奇偶标志P有影响。有影响。272. 以寄存器以寄存器Rn为为目的目的操作数的指令(操作数的指令(3条)条) MOV Rn, direct ;(data)(Rn) MOV Rn,#data ;#data(Rn) MOV Rn,A ;(A)(Rn)注意:注意:MOV Rn,Rn 错误指令错误指

13、令数据传送指令数据传送指令28 3. 以以直接地址直接地址为为目的目的操作数的指令(操作数的指令(5条)条) MOV direct, direct ;(data)(data) MOV direct,#data ;#data(data) MOV direct,A ;(A)(data) MOV direct,Rn ;(Rn)(data) MOV direct,Ri ;(Ri)(data)数据传送指令数据传送指令294. 以以间接地址间接地址为为目的目的操作数的指令(操作数的指令(3条)条) MOV Ri, direct ;(data)(Ri) MOV Ri,#data ;#data(Ri) MOV

14、 Ri,A ;(A)(Ri)注意:注意:MOV Ri,Rn 错误指令错误指令数据传送指令数据传送指令305. 查表指令查表指令(2条)条) 这组指令的功能是对存放于这组指令的功能是对存放于程序存储器程序存储器中的数据表格进行查找传送,使用变址寻址中的数据表格进行查找传送,使用变址寻址方式:方式:MOVC A,A+DPTR ;(A)+(DPTR))AMOVC A,A+PC ;(PC)+1PC,(,(A)+(PC))A数据传送指令数据传送指令316. 累加器累加器A与与外部外部RAM传送指令(传送指令(4条)条) MOVX DPTR,A ;(A)(DPTR) MOVX A, DPTR ;(DPTR

15、)(A) MOVX A, Ri ;(Ri)(A) MOVX Ri,A ;(A)(Ri)数据传送指令数据传送指令32习题习题1、下面、下面指令完成什么内容,各指令属于指令完成什么内容,各指令属于什么寻找方式什么寻找方式 MOV 45H,#20H MOV 46H,#30H MOV A,45H MOV A, 45H MOV R0,A MOV 46H,R0 MOV R0,#46H MOVX A,R0数据传送指令数据传送指令33 7. 堆栈操作类指令堆栈操作类指令(2条)条)“先进后出先进后出” PUSH direct ;(SP)+1(SP),(),( direct )(SP) POP direct ;

16、(SP)( direct ),(),(SP)-1(SP)数据传送指令数据传送指令34例如例如: 进入中断服务子程序时进入中断服务子程序时, 把程序状态寄存器把程序状态寄存器PSW、 累加器累加器A、 数据指针数据指针DPTR进栈保护。设进栈保护。设当前当前SP为为 60H。则程序段执行完,各寄存器存放。则程序段执行完,各寄存器存放的数据地址?的数据地址?SP? PUSH PSW PUSH ACC PUSH DPL PUSH DPH 61H=PSW 62H=ACC 63H=DPL 64H=DPH SP=64H数据传送指令数据传送指令35 POP ACC POP DPL POP DPH POP P

17、SW DPH=(64H) DPL=(63H) ACC=(62H) PSW=(61H) SP=60H注:堆栈指令对注:堆栈指令对 A累加器操作时,只能写成累加器操作时,只能写成“ACC”数据传送指令数据传送指令36习题习题2、下列程序执行完后,判断各寄存器的、下列程序执行完后,判断各寄存器的值和值和SP的值。的值。 MOV SP,#40H MOV A,#20H MOV R0,#4AH PUSH ACC PUSH R0 ADD A,R0 POP ACC POP R0数据传送指令数据传送指令37 8. 交换指令交换指令(3条)条) XCH A,Rn ;(A)(Rn) XCH A,Ri ;(A)(Ri

18、) XCH A, direct ;(A)( direct ) 9. 半字节半字节交换指令交换指令(1条)条) XCHD A,Ri ;(A3-0)(Ri)3-0)注:目的操作数都是注:目的操作数都是A数据传送指令数据传送指令38例题例题1: MOV R6,#45H MOV 30H,#20H XCH A,R6 XCH A,30H例题例题2: MOV 30H,#20H MOV R0,#30H XCHD A,R0 数据传送指令数据传送指令393.3.2 MCS-51算术运算指令算术运算指令1. 加法指令加法指令(4条)条) ADD A,#data ;(A)+#data(A) ADD A, direct

19、 ;(A)+(data)(A) ADD A,Rn ;(A)+(Rn)(A) ADD A,Ri ;(A)+(Ri)(A)注:目的操作数都是注:目的操作数都是A40 2. 带进位加法指令带进位加法指令(4条)条) ADDC A, direct ;(A)+(data)+(C)(A) ADDC A,#data ;(A)+#data +(C)(A) ADDC A,Rn ;(A)+Rn+(C)(A) ADDC A,Ri ;(A)+(Ri)+(C)(A)算术运算指令算术运算指令413. 带借位减法指令带借位减法指令(4条)条)SUBB A, direct ;(A)()(data) (C)(A) SUBB A

20、,#data ;(A)#data (C)(A)SUBB A,Rn ;(A)()(Rn) (C)(A) SUBB A,Ri ;(A)(Ri) (C)(A) 算术运算指令算术运算指令42 4. 乘法指令(乘法指令(1条)条) MUL AB ;(A)()(B)(A)和()和(B) 结果低结果低8位存在累加器位存在累加器A,而高,而高8位存在寄位存在寄存器存器B中。如果中。如果OV=1,说明乘积大于,说明乘积大于FFH,否则否则OV=0,但进位标志位,但进位标志位CY总是等于总是等于0。 注:注:AB 连写,中间不加连写,中间不加 , 号号算术运算指令算术运算指令435. 除法指令(除法指令(1条)条

21、) DIV AB ;(A)()(B)(A)和()和(B) 得到的得到的商商存在累加器存在累加器A,而,而余数余数存在寄存器存在寄存器B中。中。当除数当除数B为为0时,时,OV1,表示除法无意义。,表示除法无意义。注:注:AB 连写,中间不加连写,中间不加 , 号号算术运算指令算术运算指令44 6. 加加1指令(指令(5条)条) 加加1指令不会对任何标志有影响,如果指令不会对任何标志有影响,如果原寄存器的内容为原寄存器的内容为FFH,执行加,执行加1后,结果后,结果就会是就会是00H。 INC direct ;( direct )+1( direct ) INC Ri ;(Ri)+1(Ri) I

22、NC Rn ;(Rn)+1(Rn) INC A ;(A)+1 (A) INC DPTR ;(DPTR)+1(DPTR) 算术运算指令算术运算指令45 7. 减减1指令(指令(4条)条) 若原寄存器的内容为若原寄存器的内容为00H,减,减1后即为后即为FFH,运算结果不影响任何标志位。,运算结果不影响任何标志位。 DEC A ;(A)-1(A) DEC direct ;(data)-1(data) DEC Ri ;(Ri)-1(Ri) DEC Rn ;(Rn)-1(Rn)注:注:DPTR 不能进行不能进行 DEC算术运算指令算术运算指令468. 十进制调整指令(十进制调整指令(1条)条) DA

23、A 注:操作数只能时注:操作数只能时 A 这条指令通常这条指令通常跟在加法指令之后,跟在加法指令之后,进进行行BCD码调整码调整, 使累加器使累加器A中的内容调整为中的内容调整为二位二位压缩型压缩型 BCD码的数。码的数。算术运算指令算术运算指令47执行该指令时执行该指令时, 判断判断 : 1、 如果如果A中的低中的低 4 位位 9或辅助进位标志或辅助进位标志 AC=1,则低,则低 4 位加位加 6 操作操作; 2、如果、如果A中的高中的高 4 位位 9或进位标志或进位标志 C=1,则高则高 4 位加位加 60H 操作操作;算术运算指令算术运算指令48例如例如: 有两个有两个 BCD数数 36

24、 与与 45 相加相加, 结果应为结果应为 BCD码码 81, 程序如下程序如下: MOV A, 36H ADD A, 45H DA A 算术运算指令算术运算指令499. 累加器半字节交换指令(累加器半字节交换指令(1条)条) 这条指令是将累加器中的内容高低半字节这条指令是将累加器中的内容高低半字节互换。互换。 SWAP A ;(A3-0)(A7-4)算术运算指令算术运算指令50练习:练习:1、判断下面指令的对错。、判断下面指令的对错。MOV A,#10HMOV R0,R5MOV A,R4MOV A,A+DPTRMOVC A,A+R0MOV R0,AMOVX A,DPTRXCH R0,AXCH

25、 A,#20HADD R0,AMUL A,BDIV BADA R4算术运算指令算术运算指令512、执行下面程序段后,各寄存器的值是多少,执行下面程序段后,各寄存器的值是多少,SP?初始值为:初始值为:ACC=58H, R2=36H, DPTR=9E7FH, SP=30H ADD A,R2 PUSH ACC PUSH DPL PUSH DPH ADD A,R2 POP ACC POP DPL算术运算指令算术运算指令523、编程,完成一下功能。 (30H)=10; (31H)=15; (32H)=(30H)+(31H); (33H)=(31H)-(30H); (34H),(35H)=(30H)*(

26、31H); (36H)=(30H)/(31H)的商; (37H)=(30H)/(31H)的余;算术运算指令算术运算指令533.3.3 逻辑运算及移位指令逻辑运算及移位指令 指令有与、或、异或、求反、左右移位、指令有与、或、异或、求反、左右移位、清清0等逻辑操作。等逻辑操作。1. 循环移位指令(循环移位指令(4条)条)RL A ;累加器累加器A中的内容循环左移一位中的内容循环左移一位RR A ;累加器累加器A中的内容循环右移一位中的内容循环右移一位RLC A ;累加器累加器A中的内容连同进位位中的内容连同进位位CY循环左移一位循环左移一位RRC A ;累加器累加器A中的内容连同进位位中的内容连同

27、进位位CY循环右移一位循环右移一位542. 求反指令求反指令(1条)条) 这条指令将累加器中的内容按位取反。这条指令将累加器中的内容按位取反。 CPL A ; 3. 清零指令清零指令(1条)条) 这条指令将累加器中的内容清这条指令将累加器中的内容清0。 CLR A ; 0(A)逻辑运算及移位指令逻辑运算及移位指令554. 逻辑与操作指令逻辑与操作指令(6条)条) ANL A, direct ANL A,#data ANL A,Rn ANL A,Ri ANL direct,#data ANL direct,A 逻辑运算及移位指令逻辑运算及移位指令56 5. 逻辑或操作指令逻辑或操作指令(6条)条

28、) ORL A, direct ORL A,Ri ORL A,#data ORL A,Rn ORL direct,#data ORL direct,A 逻辑运算及移位指令逻辑运算及移位指令576. 逻辑异或操作指令逻辑异或操作指令(6条)条) XRL A, direct XRL A,Ri XRL A,#data XRL A,Rn XRL direct,#data XRL direct,A 逻辑运算及移位指令逻辑运算及移位指令58习题:习题:执行下列指令,分析运行结果。执行下列指令,分析运行结果。SETB CMOV A,#0FEHRL ARLC ACPL AANL A,#0F0HCLR AMOV

29、 R0,#50HORL A,R0RR ARR ARRC A逻辑运算及移位指令逻辑运算及移位指令59编程程序,完成下列控制功能。原理图如下图所示。要求:D1亮 D2亮。 D8亮 D1亮逻辑运算及移位指令逻辑运算及移位指令603.3.4 控制转移指令控制转移指令 这些指令的执行一般都不会对标志位有影响。这些指令的执行一般都不会对标志位有影响。1. 无条件转移指令无条件转移指令(4条)条) 这组指令执行完后,程序就会无条件转移到指令这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。所指向的地址上去。 LJMP addr16 ; addr16(PC) AJMP addr11 ;(PC)+2(

30、PC),),addr11(PC10-0) SJMP rel ;(PC)+ 2 + rel(PC) JMP A+DPTR ;(A)+ (DPTR)(PC)612. 条件转移指令条件转移指令(8条条)1)累加器判零转移指令累加器判零转移指令 JZ rel ; A0,(PC)+ 2 + rel(PC) JNZ rel ; A0,(PC)+ 2 + rel(PC)2)比较转移指令比较转移指令 CJNE A, direct, rel ; A( direct ),(PC)+ 3 + rel(PC);A(direct) 则则 CY0; A(direct) 则则 CY1 控制转移指令控制转移指令62CJNE

31、A, #data, rel ; A#data,(PC)+ 3 + rel(PC)CJNE Rn, #data, rel ; Rn#data,(PC)+ 3 + rel (PC) CJNE Ri, #data, rel ; Ri #data,(PC)+ 3 + rel(PC)控制转移指令控制转移指令633)减减1不为不为0转移指令转移指令DJNZ Rn, rel ; (Rn)-1(Rn),(Rn)0,(PC)+ 2 + rel(PC) DJNZ direct, rel ; (direct )1(direct),(direct)0,(PC)+ 2 + rel(PC)控制转移指令控制转移指令64习题

32、:分析下面程序的功能。DELAY: MOV R7,#250 D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 65习题:编写程序,要求将数据区习题:编写程序,要求将数据区 30H50H 中中的内容清零。的内容清零。MAIN: mov r2,#21h ;地址数地址数 mov r0,#30h ;首地址首地址xh: mov r0,#0 inc r0 djnz r2,xh END66 3. 子程序调用及返回指令子程序调用及返回指令(4条)条)ACALL addr11 ; 短调用指令,可在短调用指令,可在2kB空间调空间调用子程序。用子程序。执行过程:执行过程: 1) (PC)+

33、 2(PC) 2) PUSH PC7-0 3) PUSH PC15-8 4) addr11(PC10-0)控制转移指令控制转移指令67LCALL addr16 ; 长调用指令,可在长调用指令,可在64kB空间空间调用子程序。调用子程序。执行过程:执行过程: 1)()(PC)+ 3(PC) 2) PUSH PC7-0 3) PUSH PC15-8 4) addr16(PC)控制转移指令控制转移指令68 RET ; 子程序返回指令。子程序返回指令。 执行过程:执行过程: 1) pop PC15-8 2) pop PC7-0 RETI ; 中断返回指令,除具有中断返回指令,除具有RET功能外,功能外

34、,还有清除内部中断状态标志。还有清除内部中断状态标志。控制转移指令控制转移指令69例题:编写子程序,要求完成例题:编写子程序,要求完成A+B-C=DJS: MOV A,R0 ADD A,R1 SUBB A,R2 ;D RETMAIN: MOV R0,#20H ;A MOV R1,#15H ;B MOV R2,#10H ;C ACALL JS MOV R3,A . AJMP MAIN子程序子程序主程序主程序704. 空操作指令空操作指令(1条)条) NOP 这条指令除了使这条指令除了使PC加加1,消耗一个机器周期外,消耗一个机器周期外,没有执行任何操作。可用于短时间的延时。没有执行任何操作。可用

35、于短时间的延时。控制转移指令控制转移指令713.3.5 位操作指令位操作指令 1. 位传送指令位传送指令(2条)条) MOV C,bit ;bitCY,某位数据送,某位数据送CY MOV bit,C ;CYbit,CY数据送某位数据送某位72 2. 位置位、复位指令位置位、复位指令(4条)条) 这些指令对这些指令对CY及可寻址位进行置位或复位及可寻址位进行置位或复位操作。操作。 CLR C ; 0CY,清清CY CLR bit ; 0bit,清某一位清某一位 SETB C ; 1CY,置位置位CY SETB bit ; 1bit,置位某一位置位某一位位操作指令位操作指令733. 位运算指令位运

36、算指令(6条)条)位运算都是逻辑运算,有与、或、非三种指令。位运算都是逻辑运算,有与、或、非三种指令。 ANL C,bit ;(CY)(bit)CY ANL C,/bit ;(CY)( )CY ORL C,bit ;(CY)(bit)CY ORL C,/bit ;(CY)( )CY CPL C ;( )CY CPL bit ;( )birbitbitbitc位操作指令位操作指令744. 位控制转移指令位控制转移指令(5) JC rel ; (CY)=1转移,(转移,(PC)+2+relPC,否则程序往下执行,(,否则程序往下执行,(PC)+2PC JNC rel ; (CY)=0转移,(转移,

37、(PC)+2+relPC,否则程序往下执行,(,否则程序往下执行,(PC)+2PC。位操作指令位操作指令75 JB bit, rel ; 位状态位状态=1转移。转移。 JNB bit, rel ; 位状态位状态=0转移。转移。 JBC bit, rel ; 位状态位状态=1转移,并使该位转移,并使该位 清清“0”。76例题:编写程序,要求查找一组数据,小于例题:编写程序,要求查找一组数据,小于10的数有的数有几个。数据如下:几个。数据如下:TAB: DB 12,13,4,15,16,25,6,2MAIN: mov r2,#0 ;10的个数的个数 mov r3,#8 ;数组的数组的个数个数 mo

38、v R4,#0 ;数据表的地址数据表的地址 mov dptr,#tablp1: MOV A,R4 movc a,a+dptr subb a,#10 jnc lp2 inc r2 ;10的个数的个数 clr clp2: inc r4 ;数据地址数据地址 djnz r3,lp1 ajmp mainTAB: DB 12,13,4,15,16,25,6,277MAIN: mov r2,#0 ;10的个数的个数 mov r3,#8 ;数组的数组的个数个数 mov R4,#0 mov dptr,#tablp1: mov A,R4 movc a,a+dptr cjne a,#10,lp2 sjmp lp3l

39、p2: jnc lp3 inc r2 ;10的个数的个数 clr clp3: inc r4 ;数据地址数据地址 djnz r3,lp1 ajmp mainTAB: DB 12,13,4,15,16,25,6,2781、按要求写出下列指令、按要求写出下列指令(1)将)将R0中的数据传送到中的数据传送到30H。 (2)将)将R0中的数据传送到中的数据传送到R7。(3)将)将R0的数据传送到的数据传送到B。 (4)将)将40H中的数据传送到中的数据传送到50H。(5)将)将40H中的数据传送到中的数据传送到R2。 (6)将立即数)将立即数40H传送到传送到R5。 (7)将立即数)将立即数40H传送到传送到50H。习题习题79(8)将立即数)将立即数40H传送到以传送到以R1中内容为地址中内容为地址的存储单元中。的存储单元中。(9)将)将R6中的数据传送到以中的数据传送到以R0中内容为地址中内容为地址的存储单元中。的存储单元中。802、按下列要求传送数据:设按下列要求传送数据:设RA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论