编写汇编语言源程序,将外部0020H和0021H单元存储的2位非压缩BCD码转换为压缩BCD码存储

1个回答
展开全部
摘要 您好,对于您的问题 编写汇编语言源程序,将外部0020H和0021H单元存储的2位非压缩BCD码转换为压缩BCD码存储在累加器A。 的答案:Data Segmentorg 200hData_BCD db 58h ;两位BCD码db ?,? ;保存转换后的ASCII码Data EndsCode SegmentAssume CS:Code,DS:DataStart: mov ax,Datamov ds,ax ;数据段段地址mov al,Data_BCD ;取两位BCD码xor ah,ah ;累加器高位字节清零mov cx,4 ;逻辑左移、右移次数shl ax,cl ;ax左移4位,把两位BCD码的高4位移到累加器高字节shr al,cl ;把两位BCD码的低4位移回原位置,实现两位BCD码的拆分or ax,3030h ;高低位分别加上30h,实现两位BCD码到ASCII码的转换mov Data_BCD[1],ah ;保存高位ASCII码mov Data_BCD[2],al ;保存低位ASCII码Exit_Proc: mov ah,4ch ;结束程序int 21hCode ENDSEND Start ;编译到此结束
咨询记录 · 回答于2022-09-30
编写汇编语言源程序,将外部0020H和0021H单元存储的2位非压缩BCD码转换为压缩BCD码存储在累加器A。
才刚接触单片机,麻烦过程写简单一点
您好,对于您的问题 编写汇编语言源程序,将外部0020H和0021H单元存储的2位非压缩BCD码转换为压缩BCD码存储在累加器A。 的答案:Data Segmentorg 200hData_BCD db 58h ;两位BCD码db ?,? ;保存转换后的ASCII码Data EndsCode SegmentAssume CS:Code,DS:DataStart: mov ax,Datamov ds,ax ;数据段段地址mov al,Data_BCD ;取两位BCD码xor ah,ah ;累加器高位字节清零mov cx,4 ;逻辑左移、右移次数shl ax,cl ;ax左移4位,把两位BCD码的高4位移到累加器高字节shr al,cl ;把两位BCD码的低4位移回原位置,实现两位BCD码的拆分or ax,3030h ;高低位分别加上30h,实现两位BCD码到ASCII码的转换mov Data_BCD[1],ah ;保存高位ASCII码mov Data_BCD[2],al ;保存低位ASCII码Exit_Proc: mov ah,4ch ;结束程序int 21hCode ENDSEND Start ;编译到此结束
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
这样的
Data Segmentorg 200hData_BCD db 58h ;两位BCD码db ?,? ;保存转换后的ASCII码Data EndsCode SegmentAssume CS:Code,DS:DataStart: mov ax,Datamov ds,ax ;数据段段地址mov al,Data_BCD ;取两位BCD码xor ah,ah ;累加器高位字节清零mov cx,4 ;逻辑左移、右移次数shl ax,cl ;ax左移4位,把两位BCD码的高4位移到累加器高字节shr al,cl ;把两位BCD码的低4位移回原位置,实现两位BCD码的拆分or ax,3030h ;高低位分别加上30h,实现两位BCD码到ASCII码的转换mov Data_BCD[1],ah ;保存高位ASCII码mov Data_BCD[2],al ;保存低位ASCII码Exit_Proc: mov ah,4ch ;结束程序int 21hCode ENDSEND Start
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消