一 二进制数转换为ASCⅡ码.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一 二进制数转换为ASCⅡ码.doc

一 二进制数转换为ASCⅡ码 将一个字节的二进制数转换为两位16进制数的ASCⅡ码 main: mov a,@0x9f ;二进制数为0x9f mov 0x30,a ;二进制数存入0x30 mov a,@0x02 mov 0x10,a ;0x10中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04中为转换后数据存放地址 mov a,0x30 B1: and a,@0x0f ;取a低4位 mov 0x00,a sub a,@0x09 ;低4位大于9跳往B2 jbs 0x03,0 jmp B2 mov a,0x00 ;低4位不大于9则加0x30 add a,@0x30 mov 0x00,a ;将ASCⅡ码存入0X04所指单元 jmp B3 B2: mov a,0x00 ;大于9则加0X37 add a,@0x37 mov 0x00,a B3: swapa 0x30 ;将0X30高4位换入A低4位 inc 0x04 ;存储地址加1 djz 0x10 ;循环次数减1,为0则返回 jmp B1 ;不为0继续转换 self: jmp self eop 二 多字节二进制加法 0X20,0X21中的二进制无符号数与0X22,0X23中的二进制无符号数相加,结果放在0X24,0X25,0X26中,低地址中放低字节数据。 Main: mov a,@0x78 ;赋值 mov 0x20,a mov a,@0xc6 mov 0x21,a mov a,@0x86 mov 0x22,a mov a,@0x9e mov 0x23,a mov a,@0x0 ;0x26单元清0 mov 0x26,a mov a,0x21 add a,0x23 mov 0x25,a ;高字节相加,结果送0x25 jbc 0x03,0 inc 0x26 ; 有进位则0x26加1 mov a,0x20 add a,0x22 mov 0x24,a ;低字节相加,结果送0x24 jbs 0x03,0 jmp self ;无进位跳self inc 0x25 ;有进位0x25加1 jbc 0x03,0 inc 0x26 ; 有进位0x26加1 self: jmp self eop 三 多字节二进制减法 0x20,0x21中的二进制无符号数减0x22,0x23中的二进制无符号数, 低地址中放低字节数据。假设被减数大于减数。 注意:(1)sub指令减出结果为正时,c标志置1。 (2)sub指令减出结果为0时,c标志也置1。 即,sub指令执行后,c标志清0表示结果为负。 main: mov a,@0x67 ;赋值 mov 0x20,a mov a,@0xff mov 0x21,a mov a,@0xe8 mov 0x22,a mov a,@0x44 mov 0x23,a ; 高字节相减 sub a,0x21 mov 0x25,a ;结果存0x25 mov a,0x22 ;低字节相减 sub a,0x20 mov 0x24,a jbs 0x03,0 dec 0x25 ;有借位则0x25减1 self: jmp self eop 四 二进制乘法运算 EM78单片机没有乘法指令,所以乘法运算需要转化为加法运算。0X20单元数据乘以0X21单元数据,结果放在0X22,0X23中。 main: mov a,@0x0 ;0x22,0x23单元清0 mov 0x22,a mov 0x23,a mov a,@0x3f ;赋值 mov 0x20,a mov a,@0x22 mov 0x21,a mul1: mov a,0x20 ;0x20与0x22内容相加 add 0x22,a jbc 0x03,0 inc 0x23 ;有进位0x23加1 djz 0x21 ;0x21中次数减到0则结束 jmp mul1 ;没减到0则继续 self: jmp self eop 五 二进制除法运算 多字节二进制除法 被除数为3个字节,在0x20、0x21、0x22单元中,0x22.7为最高位,0x20.0为最低位。 除数为2个字节,在0x30、0x31中。 算法:EM78单片机没有除法指令,而且本例中除法为多字节除法,可采用如下算法。 将被除数扩充一个字节0X23,0X23清0。被除数左移1位,0X23、0X22中数据减去0X31、0X30中数据,够减则减且0X20.0置1,减出结果存入0X23、0X22;不够减则0

文档评论(0)

wsh1288 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档