欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2汇编语言.ppt

    • 资源ID:67221706       资源大小:2.17MB        全文页数:45页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2汇编语言.ppt

    单片机原理及应用单片机原理及应用2022/12/201汇编语言与汇编程序n n学习要求学习要求 了解了解MCS-51汇编语言指令的形汇编语言指令的形式,掌握指令的格式式,掌握指令的格式 掌握掌握MCS-51单片机指令的寻址单片机指令的寻址方式方式 掌握掌握MCS-51汇编语言指令的分汇编语言指令的分类及其使用类及其使用 掌握常用的伪指令掌握常用的伪指令2022/12/202022/12/202 2汇编语言与汇编程序汇编语言与汇编程序指令系统概述指令系统概述n n汇编:汇编:汇编:汇编:源程序翻译成机器语言的过程源程序翻译成机器语言的过程源程序翻译成机器语言的过程源程序翻译成机器语言的过程机器语言:机器语言:机器语言:机器语言:二进制代码,二进制代码,二进制代码,二进制代码,CPUCPU能够直接识别、能够直接识别、能够直接识别、能够直接识别、并执行其操作并执行其操作并执行其操作并执行其操作汇编语言:汇编语言:汇编语言:汇编语言:用助记符表示的语句;源程序用助记符表示的语句;源程序用助记符表示的语句;源程序用助记符表示的语句;源程序n nC51C51语言语言语言语言:语法同标准语法同标准语法同标准语法同标准C C语言。语言。语言。语言。开开开开发发发发效效效效率率率率高高高高,可可可可读读读读性性性性强强强强,是是是是目目目目前前前前使使使使用用用用最最最最为为为为广广广广泛泛泛泛的单片机开发语言。的单片机开发语言。的单片机开发语言。的单片机开发语言。一条一条一条一条C C语言通常需要由多条机器语言组成。语言通常需要由多条机器语言组成。语言通常需要由多条机器语言组成。语言通常需要由多条机器语言组成。机器语言机器语言(Machine LanguageMachine Language)有三类有三类 汇编语言汇编语言 (AssembleAssemble)高级语言高级语言 (High Level LanguageHigh Level Language)2022/12/202022/12/203 3汇编语言与汇编程序汇编语言与汇编程序n n汇编语言的指令格式?汇编语言的指令格式?汇编语言的指令格式?汇编语言的指令格式?标号标号标号标号:操作码助记符操作码助记符操作码助记符操作码助记符 (目的操作数目的操作数目的操作数目的操作数),(),(源操作数源操作数源操作数源操作数);注释;注释;注释;注释换行表示一条指令结束。例如:换行表示一条指令结束。例如:LOOPLOOP:MOVA,#40HMOVA,#40H;取参数;取参数 MOVR0,AMOVR0,A1.1.标号:标号:标号:标号:指令的符号地址。指令的符号地址。2.2.操作码助记符:操作码助记符:操作码助记符:操作码助记符:指明指令功能。指明指令功能。3.3.操作数:操作数:操作数:操作数:指令操作对象。指令操作对象。数据、地址、寄存器名及约定符号。数据、地址、寄存器名及约定符号。4.4.注释行:注释行:注释行:注释行:说明指令在程序中的作用。说明指令在程序中的作用。操作码和操作数是指令主体。操作码和操作数是指令主体。2022/12/202022/12/204 4汇编语言与汇编程序汇编语言与汇编程序1.1.寻址方式寻址方式注注:找信是寻找找信是寻找信的信的“地址地址”!寻寻址址方方式式,就就是是指指如如何何找找到到存存放放被被操操作作数数据据的的位置(地址)的方法。位置(地址)的方法。我的信在我的信在我的信在我的信在她那她那她那她那!找信找信找信找信去去去去!2022/12/202022/12/205 5汇编语言与汇编程序汇编语言与汇编程序立即寻址立即寻址n n由指令直接给出操作数:由指令直接给出操作数:8位和位和16位。数位。数值前加值前加“#”表示表示;若十六进制英文字母若十六进制英文字母AF前加前加0目的地目的地MOV AMOV A,#0B0H#0B0H速递快信速递快信AB0HB0H2022/12/202022/12/206 6汇编语言与汇编程序汇编语言与汇编程序直接寻址直接寻址n n指令直接给出操作数地址的寻址方式。指令直接给出操作数地址的寻址方式。目的地目的地内部内部RAMRAMSFRSFRMOV A,3AHMOV A,3AHXXH3AHAF0HF0H2022/12/202022/12/207 7汇编语言与汇编程序汇编语言与汇编程序目的地目的地寄存器寻址寄存器寻址n n以通用寄存器的内容为操作数的寻址方式。以通用寄存器的内容为操作数的寻址方式。以通用寄存器的内容为操作数的寻址方式。以通用寄存器的内容为操作数的寻址方式。vv注:注:注:注:A A和和和和B B既是通用寄存器,又是具有直接地址的既是通用寄存器,又是具有直接地址的既是通用寄存器,又是具有直接地址的既是通用寄存器,又是具有直接地址的特殊功能寄存器。特殊功能寄存器。特殊功能寄存器。特殊功能寄存器。寄存器寄存器R0R0R7R7A AB BDPTRDPTRMOV A,R1MOV A,R1R1A10H10H2022/12/202022/12/208 8汇编语言与汇编程序汇编语言与汇编程序目的地目的地寄存器间接寻址寄存器间接寻址n n以寄存器中的内容为地址,该地址中的内容以寄存器中的内容为地址,该地址中的内容以寄存器中的内容为地址,该地址中的内容以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。为操作数的寻址方式。为操作数的寻址方式。为操作数的寻址方式。n n寄存器前加寄存器前加寄存器前加寄存器前加 XXHMOV AMOV A,R1R1可可寻址内部寻址内部RAM128B寻址寻址外部外部RAM信在信在XXH中中寄存器寄存器R0R0、R1R1DPTRDPTRSPSP仅用于堆栈操作仅用于堆栈操作R1A34H34H41H 67H40H34HR12022/12/202022/12/209 9汇编语言与汇编程序汇编语言与汇编程序变址寻址变址寻址操作数为程序存储器的地址,该地址是由操作数为程序存储器的地址,该地址是由操作数为程序存储器的地址,该地址是由操作数为程序存储器的地址,该地址是由DPTRDPTR或或或或PCPC加上累加器加上累加器加上累加器加上累加器A A的内容形成的的内容形成的的内容形成的的内容形成的1616位地址位地址位地址位地址只有读操作而无写操作只有读操作而无写操作只有读操作而无写操作只有读操作而无写操作PC/DPTR1000H1000H变址寄存器变址寄存器1000H+30H程序存储器程序存储器65H.1030H65MOVC AMOVC A,A+DPTRA+DPTRMOVC AMOVC A,A+PCA+PCJMP A+DPTRJMP A+DPTR2022/12/202022/12/201010汇编语言与汇编程序汇编语言与汇编程序位寻址位寻址n n对位地址中的内容作位操作的寻址方式对位地址中的内容作位操作的寻址方式对位地址中的内容作位操作的寻址方式对位地址中的内容作位操作的寻址方式n n位寻址只能对有位地址的空间(位寻址只能对有位地址的空间(位寻址只能对有位地址的空间(位寻址只能对有位地址的空间(20H-2FH20H-2FH和和和和SFRSFR的可寻址位)作寻址操作。的可寻址位)作寻址操作。的可寻址位)作寻址操作。的可寻址位)作寻址操作。0 0Cy AC FO RS1 RS0 OV PCy AC FO RS1 RS0 OV PPSW内部RAM位地址空间26H 37 36 35 34 33 32 31 30 37 36 35 34 33 32 31 30 MOV C,37H0 02022/12/202022/12/201111汇编语言与汇编程序汇编语言与汇编程序寻址空间寻址空间序号序号 寻址方式寻址方式相应存储器空间相应存储器空间1寄存器寻址寄存器寻址 R0-R7,A,B,Cy(位位),DPTR2直接寻址直接寻址 内部内部RAM低地址低地址128字节和字节和SFR3寄存器寄存器间接寻址间接寻址内部内部RAM(R1,R0,SP?)外部数据存储器外部数据存储器(R1,R0,DPTR)4立即寻址立即寻址 程序存储器立即数程序存储器立即数5变址寻址变址寻址 程序存储器(程序存储器(A+DPTR,A+PC)6位寻址位寻址对内部对内部RAM或或SFR的某些单元进行位的某些单元进行位寻址寻址2022/12/202022/12/201212汇编语言与汇编程序汇编语言与汇编程序判断以下指令判断以下指令源操作数源操作数的寻址方式的寻址方式MOVA,#88HMOVA,#88HPUSHACCPUSHACCPOPACCPOPACCMOV28H,R4MOV28H,R4MOVXA,DPTRMOVXA,DPTRMOVCA,A+DPTRMOVCA,A+DPTRMOVA,R0MOVA,R0MOVXA,R0MOVXA,R0CLRCCLRCSETB00HSETB00H立即寻址立即寻址立即寻址立即寻址直接寻址直接寻址直接寻址直接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器寻址寄存器寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址变址寻址变址寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址寄存器间接寻址位寻址位寻址位寻址位寻址位寻址位寻址位寻址位寻址2022/12/202022/12/201313汇编语言与汇编程序汇编语言与汇编程序2.2.常用指令常用指令MCS-51单片机共有单片机共有111条指令,按条指令,按功能分类,可分为功能分类,可分为5大类:大类:l l数据传送类指令(共数据传送类指令(共29条)条)l l算术操作类指令(共算术操作类指令(共24条)条)l l逻辑操作类指令(共逻辑操作类指令(共24条)条)l l控制程序转移类指令(共控制程序转移类指令(共17条)条)l l布尔变量操作类指令(共布尔变量操作类指令(共17条)条)2022/12/202022/12/201414汇编语言与汇编程序汇编语言与汇编程序(1)(1)数据传送类指令数据传送类指令累加器累加器A直接地址直接地址direct立即数立即数#data寄存器寄存器R0R7寄存器间接寄存器间接R0、R1数据指针数据指针DPTR16位位入、出栈入、出栈SP入入出出位累加器位累加器C112022/12/202022/12/201515汇编语言与汇编程序汇编语言与汇编程序RnRn工作寄存器工作寄存器R0R0R7R7,即即n=0n=07 7RiRi寄存器寄存器R0R0、R1R1,即,即i=0i=0、1 1directdirect8 8 位内部位内部RAMRAM单元的地址单元的地址datadata指令中的指令中的8 8 位立即数位立即数data16data16指令中的指令中的1616位立即数位立即数bitbit内部数据内部数据RAMRAM或或SFRSFR的可直接寻址位的可直接寻址位/位操作数的前缀,表示对该位取反位操作数的前缀,表示对该位取反(X X)X X中的内容。中的内容。(X)(X)由由 X X寻址的单元中的内容寻址的单元中的内容表示数据的传送方向表示数据的传送方向表示数据交换表示数据交换2022/12/202022/12/201616汇编语言与汇编程序汇编语言与汇编程序传送传送:把源地址单元的内容传输到目的地:把源地址单元的内容传输到目的地:把源地址单元的内容传输到目的地:把源地址单元的内容传输到目的地址单元中去,源地址单元内容不变址单元中去,源地址单元内容不变址单元中去,源地址单元内容不变址单元中去,源地址单元内容不变数据传送指令不影响标志位数据传送指令不影响标志位数据传送指令不影响标志位数据传送指令不影响标志位1.1.1.1.以以以以A A A A为目的操作数为目的操作数为目的操作数为目的操作数MOVAMOVA,dirdirMOVAMOVA,#data#dataMOVAMOVA,RnRn MOVAMOVA,RiRi 例:例:例:例:R1R120H20H,(,(,(,(20H20H)55H55H,指令指令指令指令MOVAMOVA,R1R1;执行后,;执行后,;执行后,;执行后,A A55H55H2022/12/202022/12/201717汇编语言与汇编程序汇编语言与汇编程序2.2.2.2.以以以以RnRnRnRn为目的操作数为目的操作数为目的操作数为目的操作数MOVMOVRnRn,dirdirMOVMOVRnRn,#data#dataMOVMOVRnRn,AA例例例例:(40H)40H)30H30H,指令指令指令指令 MOVR7MOVR7,40H40H执行后,执行后,执行后,执行后,R7R730H30H3.3.3.3.以直接地址为目的操作数以直接地址为目的操作数以直接地址为目的操作数以直接地址为目的操作数MOVdir1MOVdir1,dir2dir2MOVdirMOVdir,#data#dataMOVdirMOVdir,AAMOVdirMOVdir,RnRn MOVdirMOVdir,RiRi 例例例例:R0=50H,(50H)=10H,R0=50H,(50H)=10H,指指指指令令令令 MOV35H,R0MOV35H,R0执行后,执行后,执行后,执行后,(35H)(35H)10H10H2022/12/202022/12/201818汇编语言与汇编程序汇编语言与汇编程序4.4.4.4.以寄存器间接地址为目的操作数以寄存器间接地址为目的操作数以寄存器间接地址为目的操作数以寄存器间接地址为目的操作数MOVMOVRiRi,dirdirMOVMOVRiRi,#data#dataMOVMOVRiRi,AA5.5.5.5.查表指令(读程序存储器)查表指令(读程序存储器)查表指令(读程序存储器)查表指令(读程序存储器)MOVCAMOVCA,(A+DPTRA+DPTR)MOVCAMOVCA,(A+PCA+PC)例例例例:A A20H20H,DPTRDPTR2000H2000H,指令指令指令指令 MOVCAMOVCA,(A+DPTRA+DPTR)执行后,执行后,执行后,执行后,程序存储器程序存储器程序存储器程序存储器2020H2020H2020H2020H单元中的内容单元中的内容单元中的内容单元中的内容送入送入送入送入A A A A。2022/12/202022/12/201919汇编语言与汇编程序汇编语言与汇编程序例:例:MOVAMOVA,#30H#30HMOV4FHMOV4FH,A AMOVR0MOVR0,#20H#20HMOVR0MOVR0,4FH4FHMOV21HMOV21H,20H20H习题习题习题习题:用两种寻址方式实现,将片内:用两种寻址方式实现,将片内:用两种寻址方式实现,将片内:用两种寻址方式实现,将片内RAMRAMRAMRAM 60606060H H H H单元的数据传送给累加器单元的数据传送给累加器单元的数据传送给累加器单元的数据传送给累加器A A A A。解解:MOVA,#60HMOVA,#60H()MOVR0MOVR0,#60H#60HMOVAMOVA,R0R0();A=30HA=30H;(4FH)=30H(4FH)=30H;R0=20HR0=20H;(20H)=30H(20H)=30H;(21H)=30H(21H)=30HMOVR0MOVR0,60H60HMOVAMOVA,R0R0()MOVA,60HMOVA,60H ()顺序执行下列指令序列,求每一步执行结果。顺序执行下列指令序列,求每一步执行结果。顺序执行下列指令序列,求每一步执行结果。顺序执行下列指令序列,求每一步执行结果。2022/12/202022/12/202020汇编语言与汇编程序汇编语言与汇编程序 说说 明:明:只有指令表中的指令才有对应指令代码,计算机只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。才能执行。编程时,不能随意创造发明指令。1.1.1.1.一条指令中不能同时出现两个工作寄存器:一条指令中不能同时出现两个工作寄存器:一条指令中不能同时出现两个工作寄存器:一条指令中不能同时出现两个工作寄存器:非法非法非法非法指令:指令:指令:指令:MOVR1MOVR1,R2R2MOVR2MOVR2,R0R02.2.2.2.间址寄存器只能使用间址寄存器只能使用间址寄存器只能使用间址寄存器只能使用 R0R0R0R0、R1R1R1R1。非法非法非法非法指令:指令:指令:指令:MOVAMOVA,R2R23.3.3.3.SFRSFRSFRSFR区只能直接寻址,不能用寄存器间接区只能直接寻址,不能用寄存器间接区只能直接寻址,不能用寄存器间接区只能直接寻址,不能用寄存器间接寻址。寻址。寻址。寻址。非法非法非法非法指令:指令:指令:指令:MOVR0MOVR0,#80H#80HMOVAMOVA,R0R02022/12/202022/12/202121汇编语言与汇编程序汇编语言与汇编程序6.6.6.6.访问外部数据访问外部数据访问外部数据访问外部数据RAMRAMRAMRAMMOVXDPTRMOVXDPTR,AAMOVXAMOVXA,DPTRDPTRMOVXAMOVXA,RiRiMOVXMOVXRiRi,AA例例例例:DPTRDPTR2000H,2000H,外部外部外部外部RAMRAM中中中中(2000H)=18H(2000H)=18H 指令指令指令指令 MOVXA,DPTR;MOVXA,DPTR;执行后执行后执行后执行后,A A18H18H 例例例例:P2P210H10H,R1R150H50H,A A64H64H,指令指令指令指令 MOVXR1MOVXR1,AA 执行后执行后执行后执行后,外部,外部,外部,外部RAMRAM中(中(中(中(1050H1050H)64H64H7.7.7.7.堆栈操作指令堆栈操作指令堆栈操作指令堆栈操作指令入栈入栈入栈入栈PUSHdirPUSHdir出栈出栈出栈出栈POPdirPOPdir2022/12/202022/12/202222汇编语言与汇编程序汇编语言与汇编程序8.8.8.8.交换指令交换指令交换指令交换指令(1 1)字节交换)字节交换)字节交换)字节交换 XCHAXCHA,RnRn XCHAXCHA,RiRi XCHAXCHA,dirdir(2 2)半字节交换)半字节交换)半字节交换)半字节交换XCHDAXCHDA,RiRi(3 3)累加器)累加器)累加器)累加器A A低低低低4 4位与高位与高位与高位与高4 4位交换位交换位交换位交换SWAPASWAPA 例例例例:A=80H,R0=32H,(32H)=FFH,A=80H,R0=32H,(32H)=FFH,指令指令指令指令 XCHDA,R0;XCHDA,R0;执行后执行后执行后执行后,A=8FH,(32H)=F0H,A=8FH,(32H)=F0H 例例例例:A A35H,35H,指令指令指令指令 SWAPA;SWAPA;执行后执行后执行后执行后,A=53H,A=53H9.169.169.169.16位数据传送指令位数据传送指令位数据传送指令位数据传送指令MOVDPTRMOVDPTR,#data16#data162022/12/202022/12/202323汇编语言与汇编程序汇编语言与汇编程序例:例:将片内将片内将片内将片内RAM RAM RAM RAM 2 2 2 2AHAHAHAH和和和和2 2 2 2BHBHBHBH单元单元单元单元中的低半字节拼成新字节,其中的低半字节拼成新字节,其中的低半字节拼成新字节,其中的低半字节拼成新字节,其中中中中2BH2BH2BH2BH单元的低半字节作为新单元的低半字节作为新单元的低半字节作为新单元的低半字节作为新字节的高半字节。字节的高半字节。字节的高半字节。字节的高半字节。58HMOVA,#0MOVR0,#2AHMOVR1,#2BHXCHDA,R0SWAPAXCHDA,R1XCHA,20HA 00000000 00H01011000 58H20H30H00110000R105H00000101A30H00110000R001010000 50HA01011000 58HA35H00110101R1R138H00111000R0R02022/12/202022/12/202424汇编语言与汇编程序汇编语言与汇编程序例例解释下列语句解释下列语句,并指出该程序段的功能并指出该程序段的功能MOVR0,#61HMOVR0,#0XCHA,50HXCHDA,R0SWAPAMOV60H,A功能功能:将将(50H)内的压缩内的压缩BCD码转换呈非压码转换呈非压缩缩BCD码送码送61H,62H2022/12/202022/12/202525汇编语言与汇编程序汇编语言与汇编程序练习:练习:练习:练习:n n说明程序执行过程中,说明程序执行过程中,说明程序执行过程中,说明程序执行过程中,SPSPSPSP的内容及堆栈中内的内容及堆栈中内的内容及堆栈中内的内容及堆栈中内容的改变过程。容的改变过程。容的改变过程。容的改变过程。MOV SPMOV SP,#30H#30H MOV A MOV A,#20H#20H MOV B MOV B,#30H#30H PUSH A PUSH A PUSH B PUSH B POP A POP A POP B POP B;SP=30HSP=30H;A=20HA=20H;B=30HB=30H;SP=31H SP=31H (31H31H)=20H =20H ;SP=32H SP=32H (32H32H)=30H=30H ;A=30H SP=31H A=30H SP=31H;B=20H SP=30HB=20H SP=30H2022/12/202022/12/202626汇编语言与汇编程序汇编语言与汇编程序习题:找出指令错误并改正:习题:找出指令错误并改正:1 1 1 1MOV AMOV AMOV AMOV A,#1000H#1000H#1000H#1000H2 2 2 2MOVX AMOVX AMOVX AMOVX A,1000H1000H1000H1000H3 3 3 3MOVC AMOVC AMOVC AMOVC A,1000H1000H1000H1000H4 4 4 4MOVX 60HMOVX 60HMOVX 60HMOVX 60H,A A A A 5 5 5 5MOV RMOV RMOV RMOV R0 0 0 0,60H 60H 60H 60H MOV 61H MOV 61H MOV 61H MOV 61H,RRRR0 0 0 06.XCH R6.XCH R6.XCH R6.XCH R1 1 1 1,R R R R2 2 2 27.MOVX DPTR7.MOVX DPTR7.MOVX DPTR7.MOVX DPTR,#2000H#2000H#2000H#2000H 8.MOVX 60H8.MOVX 60H8.MOVX 60H8.MOVX 60H,DPTRDPTRDPTRDPTR;A1000HA1000HA1000HA1000H(A A A A装装装装1 1 1 1个字节数)个字节数)个字节数)个字节数);AAAA片外片外片外片外RAMRAMRAMRAM(DPTR(DPTR(DPTR(DPTR、RiRiRiRi);AAAA片外片外片外片外ROMROMROMROM(DPTR(DPTR(DPTR(DPTR、PC)PC)PC)PC);片内片内片内片内RAM(60H)ARAM(60H)ARAM(60H)ARAM(60H)A(应为(应为(应为(应为MOVMOVMOVMOV);片内片内片内片内RAMRAMRAMRAM:(61H)(60H)(61H)(60H)(61H)(60H)(61H)(60H)(片内片内片内片内RAMRAMRAMRAM可直接寻址可直接寻址可直接寻址可直接寻址);R R R R1 1 1 1 R R R R2 2 2 2(必须有必须有必须有必须有A A A A参加参加参加参加);DPTR2000HDPTR2000HDPTR2000HDPTR2000H(应为应为应为应为MOV)MOV)MOV)MOV);片内片内片内片内RAMRAMRAMRAM片外片外片外片外RAMRAMRAMRAM (必须有必须有必须有必须有A A A A参加参加参加参加)2022/12/202022/12/202727汇编语言与汇编程序汇编语言与汇编程序(2 2)算术操作指令算术操作指令n n执行加、减、乘、除运算。有些算术指令执执行加、减、乘、除运算。有些算术指令执行的结果将使行的结果将使CyCy,AcAc,OVOV置位或复位,并影置位或复位,并影响累加器响累加器A A的的P P加法指令加法指令(1)不带进位加法指令不带进位加法指令ADDA,#dataADDA,dirADDA,RnADDA,Ri 1)对标志位的影响:)对标志位的影响:Cy:若:若D7有进位,则置有进位,则置1;AC:若:若D3有进位,则置有进位,则置1;OV:CyCs=1,则置,则置12)溢出规律:)溢出规律:无符号数无符号数:若若Cy=1,则溢出则溢出有符号数有符号数:若若OV=1,则溢出则溢出2022/12/202022/12/202828汇编语言与汇编程序汇编语言与汇编程序(2)加)加1指令指令INCAINCdirINCRiINCRnINCDPTR除除INC AINC A会影响会影响P P外外,其余均不影响其余均不影响各标志位各标志位(3)带进位加法指令)带进位加法指令ADDCA,dirADDCA,#dataADDCA,RnADDCA,Ri例例:A的内容为的内容为C3H,R0的内容为的内容为AAH,Cy1。指令指令ADDCA,R0执行后执行后,A=6EH,Ac=0,Cy=1,OV=12022/12/202022/12/202929汇编语言与汇编程序汇编语言与汇编程序MOVAMOVA,20H20HADDAADDA,23H23HMOV26HMOV26H,A AMOVAMOVA,21H21HADDCAADDCA,24H24HMOV27HMOV27H,A AMOVAMOVA,22H22HADDCAADDCA,25H25HMOV28HMOV28H,A AMOVAMOVA,#0#0ADDCAADDCA,#0#0MOV29HMOV29H,A A程序功能:程序功能:3字节无符号数相加。字节无符号数相加。被加数放在内部被加数放在内部RAM20H22H。加数放在内。加数放在内部部RAM23H25H。结果。结果放到内部放到内部RAM26H29H。2022/12/202022/12/203030汇编语言与汇编程序汇编语言与汇编程序减法指令减法指令(1 1)带借位减法指令)带借位减法指令)带借位减法指令)带借位减法指令SUBBA,dirSUBBA,#dataSUBBA,RnSUBBA,Ri例例例例:A=0C9H,R1=54H,Cy=1,A=0C9H,R1=54H,Cy=1,指令指令指令指令SUBBA,R1SUBBA,R1;执行后执行后执行后执行后,A A74H,Cy=0,OV=174H,Cy=0,OV=1(2 2)减)减)减)减1 1指令指令指令指令DECADECdirDECRiDECRn2022/12/202022/12/203131汇编语言与汇编程序汇编语言与汇编程序二十进制调整指令二十进制调整指令二十进制调整指令二十进制调整指令DAA;DAA;把把把把A A A A中按二进制相加后的结果调整中按二进制相加后的结果调整中按二进制相加后的结果调整中按二进制相加后的结果调整成按成按成按成按BCDBCDBCDBCD数相加的结果数相加的结果数相加的结果数相加的结果 例例例例:A=56A=56BCDBCD,B=67,B=67BCDBCD,执行指令执行指令执行指令执行指令 ADDCA,BADDCA,BDAADAA结果结果结果结果,A=23A=23BCDBCD,Cy=1Cy=1乘法指令乘法指令乘法指令乘法指令MULA,BMULA,B例例例例:A A50H,B50H,B0A0H,0A0H,指令指令指令指令 MULA,BMULA,B 执行后执行后执行后执行后,A,A00H(00H(低低低低),B),B32H(32H(高高高高),OV=1,Cy=0),OV=1,Cy=0除法指令除法指令除法指令除法指令DIVA,BDIVA,B例例例例:A A0FBH,B0FBH,B12H,12H,指令指令指令指令DIVA,BDIVA,B执行后执行后执行后执行后,A,A0DH(0DH(商商商商),B),B11H(11H(余数余数余数余数),OV=0,Cy=0),OV=0,Cy=02022/12/202022/12/203232汇编语言与汇编程序汇编语言与汇编程序CLRCMOVA,#9AHSUBBA,60HADDA,61HDAAMOV62H,A(1)已知:()已知:(60H)=24H,(,(61H)=72H,运行后,(运行后,(62H)=?(2)程序段执行何种操作)程序段执行何种操作48H2022/12/202022/12/203333汇编语言与汇编程序汇编语言与汇编程序MOVA,40HSWAPAANLA,#0FHMOVB,#10MULABANL40H,#0FHADDA,40HMOV40H,A问问:程序段执行何种操作程序段执行何种操作?2022/12/202022/12/203434汇编语言与汇编程序汇编语言与汇编程序(3 3)逻辑操作指令逻辑操作指令1.1.1.1.逻辑与逻辑与逻辑与逻辑与 ANLAANLA,dirdirANLAANLA,#data#dataANLAANLA,RnRnANLAANLA,RiRiANLdirANLdir,AAANLdirANLdir,#data#data可用于清可用于清可用于清可用于清“0”0”2.2.2.2.逻辑或逻辑或逻辑或逻辑或 ORLAORLA,dirdirORLAORLA,#data#dataORLAORLA,RnRnORLAORLA,RiRiORLdirORLdir,AAORLdirORLdir,#data#data可用于置位可用于置位可用于置位可用于置位2022/12/202022/12/203535汇编语言与汇编程序汇编语言与汇编程序3.3.3.3.逻辑异或逻辑异或逻辑异或逻辑异或 “求反求反求反求反”XRLAXRLA,dirdirXRLAXRLA,#data#dataXRLAXRLA,RnRnXRLAXRLA,RiRiXRLdirXRLdir,AAXRLdirXRLdir,#data#data4.4.4.4.求反求反求反求反 CPLACPLA;A A A A中的内容按位取反中的内容按位取反中的内容按位取反中的内容按位取反 5.5.5.5.清清清清0 0 0 0CLRACLRA;A A中的各位均为中的各位均为中的各位均为中的各位均为0 06.6.6.6.循环移位循环移位循环移位循环移位 RLARLA;累加器累加器累加器累加器A A中的内容循环左移一位中的内容循环左移一位中的内容循环左移一位中的内容循环左移一位RRARRA;累加器累加器累加器累加器A A中的内容循环右移一位中的内容循环右移一位中的内容循环右移一位中的内容循环右移一位RLCARLCA;A;A中内容连同进位中内容连同进位中内容连同进位中内容连同进位CyCy循环左移一位循环左移一位循环左移一位循环左移一位RRCARRCA;A;A中内容连同进位中内容连同进位中内容连同进位中内容连同进位CyCy循环右移一位循环右移一位循环右移一位循环右移一位2022/12/202022/12/203636汇编语言与汇编程序汇编语言与汇编程序影影响响标标志志的的指指令令指令记符指令记符指令记符指令记符影响的标志位影响的标志位影响的标志位影响的标志位C C C COVOVOVOVAcAcAcAcADDADD ADDCADDC SUBBSUBB MULMUL0 0 0 0 DIVDIV0 0 0 0 DADARRCRRCRLCRLCSETBCSETBC1 1 1 1CLRCCLRC0 0 0 0CPLCCPLCANLC,bitANLC,bit;ANLC,/bitANLC,/bitORLC,bitORLC,bit;ORLC,/bitORLC,/bitMOVC,bitMOVC,bit;MOVC,/bitMOVC,/bitCJNECJNE 注:注:注:注:表示根据运行的结果,使该标志位置位或复位表示根据运行的结果,使该标志位置位或复位表示根据运行的结果,使该标志位置位或复位表示根据运行的结果,使该标志位置位或复位2022/12/202022/12/203737汇编语言与汇编程序汇编语言与汇编程序(4 4)布尔变量操作)布尔变量操作n n布尔处理器中,进位标志布尔处理器中,进位标志布尔处理器中,进位标志布尔处理器中,进位标志C C C C相当于一般相当于一般相当于一般相当于一般CPUCPUCPUCPU中的累中的累中的累中的累加器,通过加器,通过加器,通过加器,通过C C C C完成位的传送和逻辑运算完成位的传送和逻辑运算完成位的传送和逻辑运算完成位的传送和逻辑运算n n位地址范围:位地址范围:位地址范围:位地址范围:20H-2FH20H-2FH20H-2FH20H-2FH和和和和SFRSFRSFRSFR中的可寻址位中的可寻址位中的可寻址位中的可寻址位n n位地址的表达:位地址的表达:位地址的表达:位地址的表达:例例例例PSWPSW中的位中的位中的位中的位5 5直接地址方式:直接地址方式:直接地址方式:直接地址方式:0D5H0D5H点操作符方式:点操作符方式:点操作符方式:点操作符方式:PSW.5PSW.5位名称方式:位名称方式:位名称方式:位名称方式:F0F0用户定义名方式:伪指令用户定义名方式:伪指令用户定义名方式:伪指令用户定义名方式:伪指令 bitUSERbitF0bitUSERbitF0定义后,定义后,定义后,定义后,允许用允许用允许用允许用USERUSER代替代替代替代替F0F02022/12/202022/12/203838汇编语言与汇编程序汇编语言与汇编程序3.3.3.3.位求反指令位求反指令位求反指令位求反指令CPLCCPLCCPLbitCPLbit 4.4.4.4.位传送指令位传送指令位传送指令位传送指令 MOVCMOVC,bitbitMOVbitMOVbit,CC1.1.1.1.清清清清0 0 0 0指令指令指令指令CLRCCLRC;0C0CCLRbitCLRbit;0bit0bit2.2.2.2.置位指令置位指令置位指令置位指令SETBCSETBC;1C1CSETBbitSETBbit;1bit1bit5.5.5.5.位逻辑位逻辑位逻辑位逻辑“与与与与”ANLCANLC,bitbit;(Cy)(Cy)(CyCy)(bitbit)ANLCANLC,/bit/bit;(Cy)(Cy)(CyCy)(/bit)bit)6.6.6.6.位逻辑位逻辑位逻辑位逻辑“或或或或”ORLCORLC,bitbit;(Cy)(Cy)(CyCy)(bitbit)ORLCORLC,/bit/bit;(Cy)(Cy)(CyCy)(/bit/bit)2022/12/202022/12/203939汇编语言与汇编程序汇编语言与汇编程序3 3 伪指令伪指令vv协助汇编,不产生相对应的操作码协助汇编,不产生相对应的操作码1.常量常量数值常量:数值常量:N进制数,进制数,ASCII码如码如A符号常量:由符号常量:由EQU定义,定义,赋值伪指令赋值伪指令例例AAEQUR3给标号变量给标号变量(AA)赋以数值或变量赋以数值或变量(R3)例,例,X1EQU2000HMAIN:MOVDPTR,#X12022/12/202022/12/204040汇编语言与汇编程序汇编语言与汇编程序2.2.标号标号标号标号指令标号指令标号指令标号指令标号标号:标号:标号:标号:操作码助记符操作码助记符操作码助记符操作码助记符 (目的操作数目的操作数目的操作数目的操作数),(),(),(),(源操作数源操作数源操作数源操作数)数据标号:

    注意事项

    本文(2汇编语言.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开