压缩bcd码转换成ascii码 压缩BCD码转换成ASCII码?
压缩BCD码转换成ASCII码?
代码段假定CS:Code,DS:Code BCD编号DB 45h,32H,56h,98H DW 6 dup(?)开始:push CS pop DS push CS pop es使数据段、附加段和代码段成为同一段CLD、Lea Si、BCD编号Lea di、BCD编号[8]mov CX、2 Rep movsw将这四个字节的压缩BCD代码保存到后续单元Lea Si,BCD 8字节之外的字节数u8]lea di,BCD unumber mov cx,4 BCD uascii:lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop BCD uascii Exit upro:mov ah,4CH end program int 21h code ends end start
将未压缩的BCD代码转换为ASCII代码,只要加30h20h单元转换成ASCII码放入50hmov a,haddca 20hmov 50h,A21H单元转换成ASCII码放入51hmov a,haddca 21hmov 51h,a可以用10个周期来编码
用查表法将十六进制数转换成ascⅡ代码:程序流程图:分析:也可以用计算法来实现,但比较复杂。如果我们用查表法来解决这个问题,整个程序就会简单易懂。将0-F对应的ASCⅡ码从地址开始依次放入单元中,通过设置地址指针和索引指针来实现。程序和流程图如下:(R)ORG 0400h,rmov dptr,#0600h;设置地址指针,rmov a,R0;将转换值取为a,ranl a,#0Fh;屏蔽高位4位以获得地址更改地址,rmovc a,@a dptr;查表,rmov 20h,a;保存结果,rsjmp$ org 0600h,RDB 30h,31h,32H,33H,34h,RDB 35h,36h,37h,38h,39H;RDB 41h,42h,43h,44h,45h,46h
一个字节的BCD码就是用一个字节的二进制数来表示两个十进制数。例如,用压缩BCD码表示的十进制数96是96h,而转换成ASCII码是将压缩BCD码表示的十进制数的高位和低位分开,用ASCII码表示,即转换成39H和36h,汇编语言是面向机器的编程语言。在汇编语言中,用memoni代替操作码,用符号或标签代替地址码。这样,机器语言的二进制代码就被符号所取代,机器语言就变成了汇编语言。所以汇编语言也被称为符号语言。用汇编语言编写的程序不能被机器直接识别。程序是用来把汇编语言翻译成机器语言的。这种翻译程序称为汇编程序。汇编程序是系统软件中的语言处理系统软件。汇编程序将汇编语言翻译成机器语言的过程称为汇编。我国著名计算机教育家王爽写了一本名为《汇编语言》的书。
压缩bcd码转换成ascii码 汇编语言bcd码转ASCII码 压缩bcd码和非压缩bcd码的转换
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。