ZKX's LAB

汇编 16位数存入两个8位寄存器 51单片机:C51如何将两个8位数合并成一个16位数?

2020-10-07知识4

王爽老师的汇编语言 为什么8位数不能直接累加到16位dx寄存器,却可以直接赋值到作为中介的16位ax中? 1、立即数可以直接赋值到不同长度的寄存器中,这个赋值过程由编译器处理。2、8位数不能和16位数直接相加,需要在相加之前将8位转(cbw)为16位,再相加。特别是有负数参与运算时。这些相加过程由程序员所编制的指令控制,编译器只负责翻译!

汇编把一个数送入一个16位寄存器中,是优先存高位还是低位 这个没有先后看你怎操作的比如:mov ax,1-存到ax寄存器中mov ah,1-存到高位ah寄存器中mov al,1-存到低位ah寄存器中ax寄存器可以看成两个8位寄存器也就是-ah和al

在汇编中,如何将一个16位的数拆分成两个8位的数,分别存放在两个寄存器中? 使用DX存放,DH放高8位,DL放低8位,主要的难点在于提百取方法:先将你71H里的数据备份,然后让它右移8位,再与度0000000011111111(00FF)进行与运内算,得出的就是高八位;低八位比较简单,直接让原数据与00FF进行与运算就可以了但愿能办到你,我这没容工具,没法操作了,但算法应该没错

随机阅读

qrcode
访问手机版