ImageVerifierCode 换一换
格式:PPT , 页数:1099 ,大小:10.35MB ,
文档编号:1720222      下载积分:59 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-1720222.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(罗嗣辉)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(微机原理及应用全册配套最完整精品课件1.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

微机原理及应用全册配套最完整精品课件1.ppt

1、微机原理及应用全册配套最微机原理及应用全册配套最 完整精品课件完整精品课件1 目 录 1110 1rrr(Rn) 将工作寄存器 Rn(即 R0R7)内容传送到累加 器A 中 MOV A,direct; 1110 0101 direct (direct) 将直接寻址所得的片内 RAM 单元内容或特殊功 能寄存器中的内容传送 到累加器A 中 Back 1.1.以累加器以累加器A A为目的操作数的指令为目的操作数的指令 (4(4条条, ,即即4 4种寻址方式种寻址方式) ) MOV A,Ri;1110 011i(Ri) 将间接寻址(Ri 为 R0 或 R1)所得的片内 RAM 单元内容或特殊功能积

2、存器中的内容传送到累 加器A中 MOV A,#data;0111 0100 data #data 将立即数传送到累加器 A中 例:例: v MOV A MOV A,#30H #30H ;(;(A A)=30H=30H v MOV A MOV A, 30H 30H ;(;(A A)=11H=11H v MOV A MOV A,R1 R1 ;(;(A A)=11H=11H v MOV A MOV A,R1 R1 ;(;(A A)=30H=30H v MOV A MOV A,#30H #30H ;(;(A A)=30H=30H v MOV A MOV A, 30H30H ;(;(A A)=11H =

3、11H v MOV A MOV A,R1R1 ;(;(A A)=11H=11H v MOV A MOV A,R1 R1 ;(;(A A)=30H=30H Back 2 2 、以寄存器、以寄存器RnRn为目的操作数的指令(为目的操作数的指令(3 3条)条) 汇编指令格式 机器码格式操作注释 MOV Rn,A;1111 1rrr Rn将累加器 A 中内容传 送到工作寄存器 Rn (即R0-R7)中 MOV Rn,direct; 1010 1rrr direct (direct) Rn将直接寻址所得的片 内 RAM 单元内容或特 殊功能寄存器中的内 容传送到工作寄存器 Rn(即R0-R7)中 MOV

4、 Rn,#data;0111 1rrr data #data Rn将立即数传送到工作 寄存器Rn (即R0-R7) 中 Back 直接寻址和立这组指令的功直接寻址和立这组指令的功 能是把源操作数所指定的内容送能是把源操作数所指定的内容送 到当前工作寄存器组到当前工作寄存器组R0R7R0R7中的某中的某 个寄存器。源操作数有寄存器寻个寄存器。源操作数有寄存器寻 址,即数寻址三种方式。址,即数寻址三种方式。 如:(如:(A A)=78H=78H,(,(R5R5)=47H=47H,(,(70H70H)=F2H=F2H, 执行指令:执行指令: vMOV R5MOV R5,A A ;(;(A A)R5R

5、5, (R5R5)=78H=78H vMOV R5MOV R5,70H 70H ;(;(70H70H)R5R5, (R5R5)=F2H=F2H vMOV R5MOV R5,#A3H#A3H; A3HA3HR5R5, (R5R5)=A3H=A3H v注意注意,在,在89C5189C51指令系统中没有指令系统中没有“MOV RnMOV Rn, RnRn”传送指令。传送指令。 Back 3 3 、以直接地址为目的操作数的指令(、以直接地址为目的操作数的指令(5 5条)条) 汇编指令格式 机器码格式操作注释 MOV direct,A;1111 0101 direct (A) direct将累加器 A

6、中内容传 送到直接地址direct 所指出的片内存储单 元中。 MOV direct,Rn;111 1rrr direct (Rn) direct将工作寄存器Rn(即 R0-R7)中内容传送 到直接地址 direct 所指出的片内存储单 元中 Back MOV direct, direct; 1000 0101 源direct 目的direct (源direct) 目的direct 将直接地址源direct 所指出的片内存储单 元中内容传送到直接 地址目的 direct 所 指出的片内存储单元 中 MOV direct,Ri;1000 011i direct (Ri) direct将间接寻址

7、(Ri为R0 或R1) 所得的片内RAM 单元内容传送到直接 地址 direct 所指出 的片内存储单元中 MOV direct,#data;0111 0101 direct data #data direct将立即数传送到直接 地址 direct 所指出 的片内存储单元中 Back 4 4 、以间接地址为目的操作数的指令(、以间接地址为目的操作数的指令(3 3条)条) 汇编指令格式 机器码格式操作注释 MOV Ri, A ;1111 011i(A) (Ri)将累加器A 中内容传送 到间接寻址(Ri 为 R0 或R1)所得的片内RAM 单元中。 MOV Ri, direct;0101 011i

8、 direct (direct) (Ri)将直接寻址所得的片内 RAM 单元内容或特殊功 能寄存器中的内容传送 到间接寻址(Ri 为 R0 或R1)所得的片内RAM 单元中 MOV Ri, #data ;0111 011I data #data (Ri)将立即数传送到间接寻 址(Ri为R0或R1)所 得的片内RAM单元中 Back Back RidirectRn #dataACC 图36 传送指令在片内存储器的操作功能 5 5、 十六位数据传送指令十六位数据传送指令(1(1条条) ) v 这条指令的功能是把这条指令的功能是把1616位常数送入位常数送入DPTRDPTR。 DPTRDPTR由由D

9、PHDPH和和DPLDPL组成。组成。 汇编指令格式机器码格式操作注释 MOV DPTR, #data16;1000 0000 高位字节 低位字节 dataH DPH dataL DPL 将高 8 位立即数 dataH 送入 DPH, 低 8 位立 即 数 dataL 送入 DPL。 Back 例:例:MOV DPTR #1000HMOV DPTR #1000H; (DPTRDPTR)=1000H=1000H, (DPHDPH)=10H=10H, (DPLDPL)=00H=00H Back 6 6 、查表指令(、查表指令(2 2条)条) 汇编指令格式机器码格式操作注释 MOVC A,A+DPT

10、R;1001 0011先(PC)+1 PC, 后(A)+(DPTR) A (远程查表) MOVC A, A+PC;1000 0011先(PC)+1 PC, 后(A)+(PC) A (近程查表) Back 基地址寄存器+变址寄 存器间接寻址PC+A (程序存储器0-64K) 基地址寄存器+变址寄存 器间接寻址DPTR+A (程序存储器0-64K) A寄存器 图图3-7 3-7 程序存贮器传送(查表)程序存贮器传送(查表) 例: 若:初始 ROM 内容 2000H00H 2001H01H 2002H09H 2003H04H 2004H06H 2005H08H 2006HFFH 2007H66H 2

11、008H45H 2009HABH 200AH11HH 执行下面程序段后结果如何?执行下面程序段后结果如何? vMOV DPTR, #2000H MOV DPTR, #2000H ;(;(DPTRDPTR)=2000H=2000H vMOV A , #0AH MOV A , #0AH ;(;(A A)=0AH=0AH vM O V C A , A + D P T R M O V C A , A + D P T R ; (A A)= =(A A)+ +(DPTRDPTR)= =(200AH200AH) v则:则:(A)=(200AH)=11H(A)=(200AH)=11H 例例: : 若:初始 R

12、OM 内容为: 100FH01H 1010H02H 1011H03H 1012H04H 1000H74 0DMOVA, #0DH;(A)=0DH 1002H83MOVC A, A+PC;(PC)=1002+1=1003H, (A)=( (A)+(PC) ) =(0D+1003) =(1010H) (A)=01H 1003HF8MOV R0, A;(R0)=(A)=01H 所以,最后结果为:所以,最后结果为:(A)=01 (A)=01 (R0)=01 (PC)=1004(R0)=01 (PC)=1004 Back 7 7、 累加器累加器A A与片外与片外RAMRAM传送指令传送指令(4(4条条)

13、 ) 在 8051 指令系统中,CPU 对片 外 RAM 的访问只能用寄存器间接寻 址的方式,且仅有四条指令: Back 汇编指令格式机器码格式操作注释 MOVX A,Ri ;1110 001i(Ri) A MOVX A, DPTR ;1110 0000(DPTR) A MOVX Ri, A;1111 001i(A) (Ri) MOVX DPTR, A;1111 0000(A) (DPTR) v第第2 2,4 4两条指令以两条指令以DPTRDPTR为片外数据存储器为片外数据存储器 1616位地址指针,寻址范围达位地址指针,寻址范围达64KB64KB。其功能是。其功能是 DPTRDPTR所指定的

14、片外数据存储器与累加器所指定的片外数据存储器与累加器A A之间之间 传送数据。传送数据。 v第第1 1,3 3两条指令是用两条指令是用R0R0或或R1R1作低作低8 8位地址指位地址指 针,由针,由P0P0口送出,寻址范围是口送出,寻址范围是256256字节。这两字节。这两 条指令完成以条指令完成以R0R0或或R1R1为地址指针的片外数据存为地址指针的片外数据存 储器与累加器储器与累加器A A之间的传送数据。之间的传送数据。 v上述四条指令的操作如图上述四条指令的操作如图3-83-8所示所示: : 寄存器 寄存器间接寻址 寄存器间接寻址 R1.R0DP (外 RAM0-255) ( 外 RAM

15、0-64K) 图 3-8 外部数据存储器传送操作 例例: : 若:片内若:片内RAM (30H)=01HRAM (30H)=01H,片外,片外RAM RAM (30H)=02H(30H)=02H,执行下面程序段后的结果如何,执行下面程序段后的结果如何。 MOV R1, #30H;(R1)=30H MOVX A, R1 ;(A)=02H MOV R0, A ;(R0)=(A)=02H MOV A,R1 ; (A)=(R1)=01H MOV R2, A ;(R2)=(A)=01H Back 8 、栈操作指令(二条) 堆栈:先进后出,后进先出。 汇编指令格式机器码格式操作注释 PUSH direct

16、;1100 0000 direct 先(SP)+1 SP, 后(direct) (SP) PUSH(入栈)指令 PUSH direct;1101 0000 direct 先(SP) direct, 后(SP)1 SP POP(出栈)指令 Back 例:例: MOV SP, #18H; (SP)=18H MOV A, #30H; (A)=30H MOV DPTR, #1000H; (DPTR)=1000H PUSH A; (SP)=19H(19H)=30H PUSH DPH; (SP)=1AH(1AH)=10H PUSH DPL; (SP)=1BH(1BH)=00H 继续上例继续上例: : PO

17、P DPL; (DPL)=00H (SP)=1AH POP DPH; (DPH)=10H (SP)=19H POP A ; (A)=30H (SP)=18H Back 9 9、 交换指令交换指令(4(4条条) ) 汇编指令格式机器码格式操作注释 XCH A,Rn;1100 1rrr(A) (Rn) XCH A, direct;1100 0101 direct (A) (direct) XCH A, Ri;1100 011i(A) ( (Ri) ) Back (1)字节变换指令 将第二操作数所指定的工作寄存 器 Rn(R0R7),直接寻址和间接寻址的 单元内容与累加器 A 中内容互换。其 操作可

18、表示为: A 一字节 源操作数 一字节 例例: 初始时:(A)=34H,(30H)=11H XCH A, 30H ; (A)=11H,(30H)=34H MOV R1, #30H ; (R1)=30H XCH A, R1 ;(A)=34H,(30H)=11H (2) (2) 半字节交换指令半字节交换指令 汇编指令格式机器码格式操作注释 XCHD A, Ri; 1101 011i (A03) (Ri)03) 继续上例: XCHD A, R1 ; (A)=31H ; (30H)=14H Back 3.3.2 3.3.2 算术运算指令算术运算指令 1 .1 .不带进位加法指令不带进位加法指令( (四

19、条四条) ) 2 .2 .带进位加法指令(四条)带进位加法指令(四条) 3 .3 .带借位减法指令(四条)带借位减法指令(四条) 4 . 4 . 乘法指令(乘法指令(1 1条)条) Back 5 5、 除法指令(除法指令(1 1条)条) 6 6、 加加1 1指令(指令(5 5条)条) 7 7、 减减1 1指令指令(4(4条条) ) 8 8、 十进制调整指令十进制调整指令(1(1条条) ) Back 1 1 、 不带进位加法指令不带进位加法指令( (四条四条) ) Back 汇编指令格式机器码格式操作注释 ADD A, Rn;0010 1rrr(A)+(Rn) A将工作寄存器内 容和累加器 A

20、中 的数相加, “和” 存放于累加器 A 中 ADD A,direct;0010 0101 direct (A)+(direct) A将内部 RAM 单元 内容和累加器 A 中的 数相 加, “和”存放于累 加器A中 ADD A,Ri ;0010 011i(A)+(Ri) A将间接寻址(Ri 为 R0 或 R1)所 得的片内 RAM 单 元中内容和累加 器 A 中的数相 加, “和”存放于 累加器A中 ADD A, #data;0010 0100 data (A)+#data A将立即数的 8 位 无符号二进制数 和累加器 A 中的 数相加, “和”存 放于累加器A中 例:例: 若: (A)=

21、78H , (R0)=64H 执行 ADD A,R0 后,结果及 PSW=? (A) :78H= 01111000 B + (R0) :64H= 01100100 B (A) :DCH= 11011100 B 标志位: CY=0, AC=0, OV=1, P=1, 即 PSW=05H 结果: (A)=DCH (R0)=64H Back 2 2 、带进位加法指令(四条)、带进位加法指令(四条) Back 汇编指令格式机器码格式操作注释 ADDC A, Rn ;0011 1rrr(A)+CY+(Rn) A将工作寄存器 内容、CY 位和 累加器 A 中的 数相加, “和” 存放于累加器 A 中 AD

22、DC A,direct; 0011 0101 direct (A)+(direct)+CY A 将内部 RAM 单 元内容、CY 位 和累加器 A 中 的 数 相 加 , “和”存放于 累加器 A 中 ADDC A,Ri;0011 011i(A)+(Ri)+CY A将间接寻址 (Ri 为 R0 或 R1) 所得的片内RAM 单元中内容、 CY 位和累加器 A 中的数相加, “和”存放于 累加器A中 ADDC A, #data;0011 0100 data (A)+#data+CY A将立即数的 8 位无符号二进 制数、CY 位和 累加器 A 中的 数相加, “和” 存放于累加器 A中 本组指令

23、的功能是同时把源操作数 所指出的内容和进位标志未 CY 都加到 累加器 A 中,结果存放到 A 中,其余 的功能和上面的 ADD 指令相同。本组 指令常用于多字节加法。 例:设(A)=0C3H,(R0)=0AAH, (CY)=1。 执行指令“ADDC A,R0”后的结果 及标志位如何? 解: (A) : C3H=1100 0011 + (CY) : 1=0000 0001 1100 0100 + (R0) : AAH=1010 1010 (A) : 6EH=0110 1110 标志位:CY=1,OV=1,AC=0, 结果: (A)=6EH, (R0)=0AAH。 例:编程,将(30H),(31

24、H)单元中的数与 (40H),(41H)单元中的数相加,结 果存于(30H),(31H)单元中。 解:MOV A, 30H ADD A, 40H MOV 30H, A MOV A, 31H ADDC A, 41H MOV 31H, A Back 3 3 、带借位减法指令(四条)、带借位减法指令(四条) 汇编指令格式机器码格式操作注释 SUBB A, Rn;1001 1rrr(A)-CY-(Rn) A将累加器 A 中的数 减去 CY 位及工作 寄存器内容“差” 存放于累加器 A 中 SUBB A,direct;1001 0101 direct (A)-CY-(direct) A 将累加器 A 中

25、的数 减去 CY 位及内部 RAM单 元 内 容 “差”存放于累加 器 A 中 Back SUBB A,Ri ;1001 011i(A)-CY-(Ri) A将累加器 A 中的数 减去 CY 位及间接 寻址(Ri 为 R0 或 R1) 所得的片内 RAM 单 元 中 内 容 , “差”存放于累加 器 A 中 SUBB A, #data;1001 0100 data (A)-CY-#data A将累加器 A 中的数 减去 CY 位及立即 数的 8 位无符号二 进制数, “差”存 放于累加器 A 中 v这组指令的功能是从累加器这组指令的功能是从累加器A A中减去中减去 源操作数所指出的数及进位位源操

26、作数所指出的数及进位位CYCY的值的值, , 差保留在累加器差保留在累加器A A中。中。 v由于由于89C5189C51指令系统中没有不带借位指令系统中没有不带借位 的减法指令,如需要的话,可以在的减法指令,如需要的话,可以在 “SUBBSUBB”指令前用指令前用“CLR CCLR C”指令将指令将CyCy 清清0 0,这一点必须注意。,这一点必须注意。 例:设(例:设(A A)=0C9H,=0C9H,(R2R2)=54H,Cy=1=54H,Cy=1。 执行指令执行指令“SUBB ASUBB A, R2R2”的结果如何?的结果如何? 解: (A)=0C9H= 11001001 B -) Cy=

27、 1 = 00000001 B 11001000 B -) (R2)=54H = 01010100 B (A)=74H = 01110100 B 结果为: (A)=74H 标志位为:Cy=0 AC=0 OV=1 P=0 Back 4 4、 乘法指令(乘法指令(1 1条)条) 汇编指令格式机器码格式操作注释 MUL AB ; 1010 0100(A)(B) B15-8 A7-0 将累加器 A 和寄存 器 B 中两个无符号 数相乘,所得 16 位积的低字节存放 在 A 中,高字节存 放中B中。 v该指令若乘积大于该指令若乘积大于0FFH0FFH,则,则OVOV置置1 1,否则,否则 OVOV清清0

28、 0。CyCy位总是被清位总是被清0 0。 Back 例:(A)=4EH,(B)=5DH, 执行指令“MUL AB”后结果如何? 解: 结果为: (结果为: (B B)=1CH=1CH, , (A A)=56H=56H, 表示积(表示积(BABA)=1C56H=1C56H,OV=1OV=1。 Back 5 5、 除法指令(除法指令(1 1条)条) 汇编指令格式机器码格式操作注释 DIV AB ;1000 0100(A)/(B)的商 A (A)/(B)的余数 B A 中内容除以 B 中内容,整数商 存于 A 中,余数 存于B中。 Back 该该指指令令执执行行后后,C CY Y 和和 O OV

29、V 均均被被清清 0 0。若若 原原 (B B)= =0 00 0H H,则则结结果果无无法法确确定定,用用 O OV V= =1 1 表表 示示,C CY Y 仍仍为为 0 0。 例例: (A A)= =B BF FH H, (B B)= =3 32 2H H。 执执行行指指令令“D DI IV V A AB B” 结结果果为为(A A)= =0 03 3H H, (B B)= =2 29 9H H; 标标志志位位 C CY Y= =0 0,O OV V= =0 0。 Back 6 6、 加加1 1指令(指令(5 5条)条) 汇编指令格式机器码格式操作注释 INC A ;0000 0100(

30、A)+1 AA 中内容加1。 INC Rn;0000 1rrr(Rn)+1 RnRn 中内容加1。 INC direct;0000 0101 direct (direct)+1 direct Direct 单元中内 容加1。 INC Ri;0000 011I(Ri)+1 (Ri)Ri 间接寻址所得 的片内 RAM 单元 中内容加1。 INC DPTR;1010 0011(DPTR)+1 DPTRDPTR中内容加1 Back 该组指令的操作不影响 PSW。若原单元内容 为 FFH,加 1 后溢出为 00H,也不影响 PSW 标志。 例:比较指令“INC A”和“ADD A,#01H” 的结果。

31、解: “INC A”指令只将 A 的内容加 1,标志 位没有变化。而“ADD A,#01H”指令不仅 将 A 的内容加 1,还影响标志位变化。 例:例: 若:(若:(R1R1)=30H =30H ,(,(30H30H)=11H=11H 求执行下面指令后的结果。求执行下面指令后的结果。 INC R1INC R1; (30H)=12H(30H)=12H INC R1 INC R1 ; (R1)=31H(R1)=31H 解:结果为: (解:结果为: (30H30H)=12H=12H, (, (R1R1)=31H=31H。 不影响不影响 PWSPWS Back 7 7、 减减1 1指令指令(4(4条条

32、) ) 汇编指令格式机器码格式操作注释 DEC A ;0001 0100(A)-1 AA 中内容减1。 DEC Rn;0001 1rrr(Rn)-1 RnRn 中内容减 1。 DEC direct;0001 0101 direct (direct)-1 direct Direct 单元中内 容减 1。 DEC Ri;0001 011I(Ri)-1 (Ri)Ri 间接寻址所得 的片内 RAM 单元 中内容减 1。 Back 8 8、 十进制调整指令十进制调整指令(1(1条条) ) 汇编指令格式机器码格式操作注释 DA A;1101 0100若(A0-3)9或AC=1, 则(A0-3)+6 A0-

33、3 同时,若(A4-7)9 或 CY=1, 则(A4-7)+6 A4-7 调整累加 器内容为 BCD 码。 Back 例例: : 设累加器设累加器A A内容为:内容为:01010110B01010110B(即为(即为5656的的 BCDBCD码),寄存器码),寄存器R3R3的内容为的内容为01100111B01100111B(即(即6767的的 BCDBCD码),码),CYCY内容为内容为1 1。求执行下列指令后的结果。求执行下列指令后的结果。 ADDC AADDC A,R3R3; DA ADA A; 再执行 DA A; 因为 A 中的高四位值为 11,大于 9,低四位值 为 14,也大于 9

34、,所以内部调整自动进行加 66H 的操作: 1011 1110 调整+) 0110 0110 1 0010 0100 BCD:124 即(A)=0010 0100=24BCD,CY=1;AC=1。 Back 3.3.3 3.3.3 逻辑操作指令逻辑操作指令 Back 点操作符号: 如PSW.4(D0H).4; 位名称方式: 如RS1; 用户定义名方式:如用伪指令bit Back 1 1、 位数据传送指令(位数据传送指令(2 2条)条) 汇编指令格式机器码格式操作注释 MOV C,bit ; 1010 0010 位地址(bit) (bit) C MOV bit,C ; 1001 0010 位地址

35、(bit) (C) bit 位地址(bit) Back 2、位修正指令(位修正指令(6 6条)条) 汇编指令格式机器码格式操作注释 CLR C ;1100 00110 C CLR bit ;1100 0010 位地址(bit) 0 bit Back (1)(1)位清0指令 (2)位置位置1 1指令(指令(2 2条)条) 汇编指令格式机器码格式操作注释 SETB C ;1101 00111 C SETB bit ;1101 0010 位地址(bit) 1 bit Back (3)位取反指令(位取反指令(2 2条)条) 汇编指令格式机器码格式操作注释 CPL C ;1011 0011(C) C C

36、PL bit ;1011 0010 位地址(bit) (bit) bit Back 3 3、 逻辑运算指令(逻辑运算指令(4 4条)条) 汇编指令格式机器码格式操作注释 ANL C,bit ;1000 0010 位地址(bit) (C) (bit) C ANL C,/bit ; 1011 0000 位地址(bit) (C)(bit) C Back (1 1)位逻辑)位逻辑“与与”指令(指令(2 2条)条) 例:若位地址(20H)=1, 位累加器(C)=0 执行指令:ANL C,/20H ; 后的结果: (C)=0, (20H)=1。 而执行指令: CPL 20H ; ANL C,20H; 后的

37、结果: (C)=0, (20H)=0。 Back (2 2)位逻辑)位逻辑“或或”指令(指令(2 2条)条) 汇编指令格式机器码格式操作注释 ORL C,bit ;0111 0010 位地址(bit) (C) (bit) C ORL C,/bit ; 0101 0000 位地址(bit) (C)(bit) C Back 4 4、位条件转移类指令(、位条件转移类指令(5 5条)条) (1) 判布尔累加器 C 转移指令(2 条) Back 汇编指令格式机器码格式操作注释 JC rel ;0100 0000 相对地址(rel) 先 PC+2 PC 若(C)=1,则(PC) +rel PC 若(C)=

38、0,则顺 序往下执行 JNC rel ;0101 0000 相对地址(rel) 先 PC+2 PC 若(C)=0,则(PC) +rel PC 若(C)=1,则顺 序往下执行 Back (2 2)判位变量转移指令()判位变量转移指令(2 2条)条) 汇编指令格式机器码格式操作 JB bit, rel ; 0010 0000 位地址(bit) 相对地址(rel) 先 PC+3 PC ,若(bit)=1, 则(PC)+rel PC 若(bit)=0,则顺序往下执行 JNB bit,rel;0011 0000 位地址(bit) 相对地址(rel) 先 PC+3 PC ,若(bit)=0, 则(PC)+

39、rel PC 若(bit)=1,则顺序往下执行 Back (3)判位变量并清判位变量并清0 0转移指令(转移指令(1 1条)条) 汇编指令格式机器码格式操作 JBC bit,rel;0001 0000 位地址(bit) 相对地址(rel) 先 PC+3 PC ,若(bit)=1, 则(PC)+rel PC, 0 bit 若(bit)=0,则顺序往下执行 Back 3.43.4 程序设计举例程序设计举例 一 简单程序设计举例 二 分支程序 三 循环程序 四 子程序设计举例 五 代码转换程序设计举例 六 运算类程序设计举例 Back 一一 简单程序设计举例简单程序设计举例 例1 :拆字。将片内RA

40、M 20H单元的内 容拆成两段,每段四位。并将它们分 别存入21H与22H单元中。程序如下: Back ORG 2000H STARTMOV R0,#21H ;21H(R0 MOV A,20H ; (20H)(A ANL A,#0FH ;A#0FH(A MOV R0,A ; (A)((R0) INCR0 ;R0+1(R0 MOV A,20H ; (20H)(A SWAPA, ;A03(A47 ANL A,#0FH ;A#0FH MOV R0,A ; (A)((R0) 例2:16位数求补。设16位二进制数在 R1R0中,求补结果存3于R3R2中。 MOV A,R0 CLP A ADD A,#01

41、H MOV R2,A MOV A,R1 CPL A ADDC A,#00H MOV R3,A Back 例1:片内RAM ONE和TWO两个单元中存 有两个无符号数,将两个数中的小者存 入30H单元。程序如下: 二二 分支程序分支程序 Back MOV A,ONE CJNZ A,TWO,BIG SJMP STORE BIG:JCSTORE MOV A,TWO STORE: MOV 30H,A Back 其流程如 图3.3-1示,为典型的分支程序 三三 循环程序循环程序 例1:统计字串长度。内存从STRING开 始有一字串,该字串以$结束,试统 计该字串长度,结果存于NUM单元中。 Back 程

42、序如下: NUMDATA 20H STRING DATA 21H CLR A MOV R0,#STRING LOOP:CJNE R0,#24H,NEXT SJMP COMP NEXT:INC A INC R0 SJMP LOOP COMP: MOV NUM,A Back 四四 子程序设计举例子程序设计举例 例1:用查表法编一子程序,将40H单元中的 BCD码转换成ASCII码。 入口:待转换数在(40H) 出口:转换后的数(40H) Back ORG TAB DB 30H31H32H33H34H 35H36H37H38H39H SUB1: MOV A,40H MOV DPTR,#TAB MOV

43、C A,A+DPTR MOV 40H,A RET 若将30H单元BCD码转换成ASCII码, 利用SUB1子程序。 Back 五五 代码转换程序设计举例代码转换程序设计举例 例1:R1中存有一个BCD码,编一子程 序将其转换为ASCII码,存入片外 RAM1000H单元中去。 Back 片外RAM2000H单元中有一BCD码, 编一子程序将其转换成ASCII码。 ORG 0100H MOV DPTR,#2000H MOVX A,DPTR ADD A,#30H MOVX DPTR,A RET Back 六六 运算类程序设计举例运算类程序设计举例 例1:片内RAM30H单元开始有10个字 节的二进

44、制数。编一子程序,求它 们的和。(和256)将和存入20H 单元中。 Back 例2:编写将30H,31H单元中的两字节 二进制数乘以2的程序(积小于65536) CLRC MOV A,30H RLC A MOV 30H,A MOV A,31H RLC A MOV 31H,A RET Back 第四章 汇编语言程序设计及知识 4.1 4.1 编程的步骤、方法和技巧编程的步骤、方法和技巧 4.2 4.2 汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编 4.1 编程的步骤、方法和技巧 4.1.1 4.1.1 编程的步骤编程的步骤 4.1.2 4.1.2 编程的方法和技巧编程的方法和技巧 4.

45、1.3 4.1.3 汇编语言程序的基本结构汇编语言程序的基本结构 4.1.1 编程的步骤 v一、分析问题一、分析问题 v二、确定算法二、确定算法 v三、画程序流程图三、画程序流程图 v四、编写程序四、编写程序 一、分析问题 v对需要解决的问题进行分析,以求对问题由对需要解决的问题进行分析,以求对问题由 正确的理解。如,正确的理解。如, v解决问题的任务是什么?解决问题的任务是什么? v工作过程?工作过程? v现有的条件,已知数据,对运算的精度和速现有的条件,已知数据,对运算的精度和速 度方面的要求?度方面的要求? v设计的硬件结构是否方便编程?设计的硬件结构是否方便编程? 二、确定算法 v算法

46、是如何将实际问题转化成程序模块来处算法是如何将实际问题转化成程序模块来处 理。理。 v在编程以前,先要对几种不同的算法进行分在编程以前,先要对几种不同的算法进行分 析、比较,找出最适宜的算法析、比较,找出最适宜的算法 三、画程序流程图 v程序流程图是使用各种图形、符号、有向线段等来说明程序程序流程图是使用各种图形、符号、有向线段等来说明程序 设计过程的一种直观的表示。设计过程的一种直观的表示。 v流程图步骤分得越细致,编写程序是也越方便。流程图步骤分得越细致,编写程序是也越方便。 v画流程图是程序结构设计是采用的一种重要手段。画流程图是程序结构设计是采用的一种重要手段。 v一个系统软件有总的流

47、程图(主程序框图)和局部的流程图。一个系统软件有总的流程图(主程序框图)和局部的流程图。 v流程图常采用的图形和符号。流程图常采用的图形和符号。 椭圆框椭圆框或桶形框或桶形框:表示程序的开始或结束。 矩形框矩形框:表示要进行的工作。:表示要进行的工作。 菱形框菱形框 :表示要判断的事情,菱形框内的表达式表:表示要判断的事情,菱形框内的表达式表 示要判断的内容。示要判断的内容。 圆圈圆圈 :表示连接点:表示连接点 指向线指向线:表示程序的流向:表示程序的流向 四、编写程序 v用用89C51汇编语言编写的源程序行(一条语汇编语言编写的源程序行(一条语 句)包括四个部分,也叫四个字段:句)包括四个部

48、分,也叫四个字段: 标号标号:操作码操作码操作数操作数;注释注释 v 每个字段之间要用分隔符分隔,而每个字段内部不能使用每个字段之间要用分隔符分隔,而每个字段内部不能使用 分隔符。可以用作分隔符的符号:空格分隔符。可以用作分隔符的符号:空格“ ”、冒号、冒号 “:”、逗号、逗号“,”、分号、分号“;”等。等。 例:例:LOOP:MOV A,#00H;立即数;立即数00HA 标号 v标号是用户定义的符号地址。标号是用户定义的符号地址。 v一条指令的标号是该条指令的符号名字,标号的值是汇编这一条指令的标号是该条指令的符号名字,标号的值是汇编这 条指令时指令的地址。条指令时指令的地址。 v标号由以英

49、文字母开始的标号由以英文字母开始的18个字母或数字组成,以冒号个字母或数字组成,以冒号 “:”结尾。结尾。 v标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存 放该指令目标码第一字节的存储单元的地址赋给该标号,所放该指令目标码第一字节的存储单元的地址赋给该标号,所 以,标号又叫指令标号。以,标号又叫指令标号。 操作码 v操作码是必不可少的。操作码是必不可少的。 v它用一组字母符号表示指令的操作码。在它用一组字母符号表示指令的操作码。在 89C51中,由中,由89C51的指令助记符组成。的指令助记符组成。 操作数 v汇编语言指令可能要求或不

50、要求操作数,所以这一字段可能有也可能没汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没 有。有。 v若有两个操作数,操作数之间用逗号若有两个操作数,操作数之间用逗号“,”分开。分开。 v操作数包括的内容有:操作数包括的内容有: v(1)工作寄存器:由)工作寄存器:由PSW.3和和PSW.4规定的当前工作寄存器区中的规定的当前工作寄存器区中的 R0R7。 v(2)特殊功能寄存器:)特殊功能寄存器:21个个SFR的名字。的名字。 v(3)标号名:赋值标号)标号名:赋值标号由汇编指令由汇编指令EQU等赋值的标号;指令标号等赋值的标号;指令标号 指令标号指示的指令的第一字节地址是该标号的

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|