mcs-51单片机汇编语言程序设计(三)

mcs-51单片机汇编语言程序设计(三)

ID:33605591

大小:545.86 KB

页数:27页

时间:2019-02-27

mcs-51单片机汇编语言程序设计(三)_第1页
mcs-51单片机汇编语言程序设计(三)_第2页
mcs-51单片机汇编语言程序设计(三)_第3页
mcs-51单片机汇编语言程序设计(三)_第4页
mcs-51单片机汇编语言程序设计(三)_第5页
资源描述:

《mcs-51单片机汇编语言程序设计(三)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章MCS-51汇编程序设计第第44章章MCS51MCS51汇编语言程序设计汇编语言程序设计4.14.14.14.1编程的步骤、方法和技巧编程的步骤、方法和技巧编程的步骤、方法和技巧编程的步骤、方法和技巧4.24.24.24.2汇编语言源程序的汇编语言源程序的汇编语言源程序的汇编语言源程序的编辑和汇编编辑和汇编编辑和汇编编辑和汇编4.34.34.34.3程序设计程序设计程序设计程序设计及实用子程序及实用子程序及实用子程序及实用子程序4.3.14.3.14.3.14.3.1算术运算实用子程序算术运算实用子程序算术运算实用子程序算术运算实用子程序4.3.24.3.2

2、4.3.24.3.2代码转换及代码转换及代码转换及代码转换及实用子程序实用子程序实用子程序实用子程序4.3.34.3.34.3.34.3.3查表查表查表查表程序设计程序设计程序设计程序设计4.3.44.3.44.3.44.3.4散转散转散转散转程序设计程序设计程序设计程序设计小小小小结结结结1第4章MCS-51汇编程序设计定点数乘法运算程序乘法子程序c=a×b算法:移位重复加(模仿手工计算)•积清零a=1011,b=1001;求c=a×b•乘数长度→R01011;被乘数a乘数b右移1次×1001;乘数bN1011;第1次部分积Cy=1?Y0000;第2次部分积积+

3、被乘数a0000;第2次部分积+1011;第4次部分积积右移1次1100011;积cNR0-1=0?Y积长度=被乘数长度+被乘数长度RET2图4.2定点数乘法框图第4章MCS-51汇编程序设计带符号数乘、除运算•补码乘、除:补码→原码→运算→结果求补•原码乘、除:“简单”1、原码乘运算规则Z=X×Y:原码乘法①符号位异或:ZS=XS⊕YS②数值部分乘:Z值=X值×Y值XS⊕YS→F02、原码除运算规则相同X值×值Y→Z值例10双字节原码带符号乘法程序X×Y→Z操作数均为原码;调例8NMUL子程序入口:R2R3为被乘数、R6R7为乘数RET出口:结果放在R4R5R6

4、R7中;3第4章MCS-51汇编程序设计双字节原码带符号乘法程序IMUL功能:R2R3×R6R7→R4R5R6R7IMUL:MOVA,R2;取符号位ACALLNMULXRLA,R6;符号异或;调双字节无符号乘MOVC,ACC.7MOVF0,C;存符号位MOVA,R4MOVA,R2MOVC,F0CLRACC.7;清符号位MOVACC.7,CMOVR2,A;送积符号位MOVA,R6CLRACC.7;清符号位MOVR4,AMOVR6,ARET4第4章MCS-51汇编程序设计★★4.3.24.3.2代码转换及实用子程序代码转换及实用子程序例1一位16进制数→ASCII转换

5、(计算方法1)入口:1位16进制数在R2•屏蔽高四位出口:ASCII放在R2•BCD调整SUB1:PUSHPSW•A+0F0HPUSHACC•A+40H+CyMOVA,R2方1.H→ASCIIANLA,#0FHDAANA<0A?ADDA,#0F0HYADDCA,#40HA+30HA+37HMOVR2,APOPACCPOPPSW图4.方法2.RETH→ASCII转换5第4章MCS-51汇编程序设计例2、8位二进制数转换成压缩BCD码子程序BINBCD1算法1:降幂,将2进制数除以10i的各次幂入口:A为待转换2进制数,出口:R0为地址指针FFH237H505H564

6、H0AH01H使用寄存器:ACCBINBCD1:MOVB,#100DIVAB;A/100MOV@R0,A;存RAMINCR0XCHA,B;ABADDA,BMOVB,#10MOV@R0,A;存RAMDIVAB;A/10RETSWAPA;A0~3A4~76第4章MCS-51汇编程序设计HIT例3双字节2进制数转换成压缩BCD码程序HTOBP361nn-10算法2:B=b2+b2+⋯+b2nn-10MOVA,R6;BCD*2+Cy入口为R2R3,出口R4R5R6;高在前ADDCA,R6HTOB:CLRADAAMOVR4,AMOVR6,AMOVR5,AMOVA,R5;R5

7、BCD+1MOVR6,AADDCA,R5MOVR7,#16DAALOP:CLRCMOVR5,AMOVA,R3MOVA,R4;R4BCD+1RLCAADDCA,R4MOVR3,ADAAMOVA,R2MOVR4,ARLCADJNZR7,LOPMOVR2,A7RET第4章MCS-51汇编程序设计例:100ms延时子程序;设晶振频率为12MHzD100ms:PUSHPSW;100ms子程序CLRRS0SETBRS1MOVR7,#200LOOP1:MOVR6,#250LOOP2:DJNZR6,LOOP2;1μs×2个机器周期=2μs;内环R6=初值250,即2μs×250=

8、500μs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。