1、首先左移要转换的二进制码1位; 左移之后,BCD码分别置于百位、十位、个位; 如果移位后所在的BCD码列大于或等于5,则对该值加3;继续左移的过程直至全部移位完成,并检查每一列对应的bcd码是否
2、接着看信号列表。
3、然后二进制代码设计。
4、十进制代码。
5、十六进制,最后就完成了。
注意事项:
BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。
使用masm.exe编译16位汇编源代码生成*.obj文件,在用link.exe连接生成16位可执行文件*.exe。在32位机器上是可以写16位程序的,因为x86的计算机体系就是为了兼容低阶程序而存在的,计算机在启动的时候就是以实模式(可以简单理解为16位的)启动的,之后 *** 作系统才使用机器指令转向32位保护模式(因为这样从硬件级支持多任务)。编写16位、32位、以及64位汇编程序只要下载安装相应的汇编包就可以了。追问:可以兼容低阶的程序也能兼容高阶的?回答:计算机开机启动是实模式的, *** 作系统使用机器指令转入保护模式,之所以保留实模式就是为了在硬件级支持16位程序,进入保护模式以后机器还能运行16位程序是因为在保护模式下还支持一种称为虚拟86的模式,也就是说虽然在保护模式下 *** 作系统也能执行16位机器码,但是她是保护模式提供的虚拟机状态,可以简单理解为虚拟86模式是软件仿真的16为执行环境(以便在保护模式下直接运行16位代码,而不用转回实模式)。要编译执行64机器码,必须是64cpu。否则机器无法编译执行~!低阶无法执行高阶机器码。追问:那dos汇编里的中断指令还有用吗回答:如果是在开机实模式下,汇编中断是硬件级执行的(绝对控制权)!在保护模式下dos的所有汇编中断调用都是无效的,只是被 *** 作系统虚拟执行的!!!追问:就是能执行?回答:在8051单片机片内RAM中存入一个16位数据,汇编指令中没有专门的指令。可以通过以下方法来实现:(加入十六位数为DATA,存入30H31H中)1、用压栈指令实现。
MOV SP,#30H
PUSH #LOW(DATA)
PUSH #HIGH(DATA)
或者这样也可以:
PUSH #LOW(DATA)
PUSH #HIGH(DATA)
POP 31H
POP 30H
2、用传送指令实现。
MOV A,#LOW(DATA)
MOV 30H,A
MOV A,#HIGH(DATA)
MOV 31H,A
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)