编程将(20H)单元中的压缩BCD数拆开,并变成相应的ASCII码存入(21H...
;下面程序将十位数字存入22h单元;个位数字存入21h单元 mov ax, [20h]div 0ah ;除10,ax为商,dx为余数 add ax, 30h mov [22h], ax add dx, 30h mov [21h], dx
...编写把20H单元内两个BCD数变换成相应的ascll码并放在21H(高位BCD...
20H单元内是BCD码,不需要除法运算 1位 8421BCD码 = ASCLL码,不用换换 MOV A, 20H ANL A ,#0FH ;取得个位 MOV 22H , A ;个位存22H MOV A , 20H SWAP A ;高低交换 ANL A, #0FH ;取得十位 MOV 21H , A ;十位存入21H SJMP ...
在21H,20H存放二位分离BCD码,其中21H为高位。试将它们转为二进制数...
ORG 0000H LJMP MAIN ORG 3000H MAIN:MOV 21H,#7 MOV 20H,#3 MOV B,21H MOV A,#10 MUL AB ADD A,20H ;其实MUL命令的结果的高位是存在B中的但是由于 ;此题的特殊性高8位一定是为零的,即使最大,结果 ;也只能为90小于255,故将B舍去 MOV 22H,A JMP END 这是51单片机的编程,不...
某八位寄存器存放两个压缩BCD,试编程将其转换为ASCLL
假设压缩BCD码在20H中存放,转换后十位在21H中、个位在22H中存放。程序 ORG 0000H MOV A,20H ANL A,#0FH ADD A,#30H MOV 22H,A MOV A,20H ANL A,#0F0H SWAP A ADD A,#30H MOV 21H,A SJMP END
单片机编程问题
加上30h并分别放在21H、22H中,结果分别是34h('4'的ASCII码)、38h('8'的ASCII码)。“BCD和ASCII之间不是差30H么”在0~9之内的一位数字是如此。问题是20H中的是个两位数,所以要除以10H将十位与个位分离开。另外吐槽一下:这题目用除法来分离十位个位是效率低下的行为……
汇编简单题目:两个8字节压缩BCD数分别存在以数据段DATA1和DATA2开始...
如下即可:DATAS SEGMENT DATA1 DB 12H,34H,56H,78H,23H,45H,67H,89H DATA2 DB 76H,54H,32H,10H,98H,56H,78H,90H DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START:MOV AX, DATAS MOV DS, AX LEA SI, DATA1 LEA DI, DATA2 CLC MOV CX, 8...
汇编语言
在8031单片机片内RAM的40H单元中存放一代码,若此代码为十进制数的ASCII码,则将其相应的十进制数送片内RAM50H单元;否则将该单元置成0FFH。34.设变量X存放在8031单片机片内RAM的24H单元,试编制按照下式的要求给Y赋值(Y为片内RAM的25H单元)的程序。35.根据下列要求,试分别编制相应的数据块传送程序。(1)将存放...
压缩BCD码和非压缩BCD码有什么区别?
非压缩BCD码:非压缩型BCD码一个字节可存放一个一位十进制数,其中高4位的内容不做规定(也有部分书籍要求为0,二者均可),低4位二进制表示该位十进制数。非压缩BCD码在汇编中的调整指令为AAA(加法的ASCII码调整)、AAS(减法的ASCII码调整)、AAM(乘法的ASCII码调整)、AAD(除法的ASCII码调整)。
单片机msc-51中编程实现两个一字节压缩型BCD码的减法
一字节压缩的 BCD 码相减。如:22-55 =-33。注意:-33 的 BCD 补码是 67H。MCS-51 汇编语言程序如下:MOV R2,#22H;被减数 MOV R3,#55H;减数 CLR C MOV A,R2 SUBB A,R3 ;先减一次,取得正负号 MOV F0,C ;暂时保存 ;---下面正式相减 MOV A,#9AH SUBB A,...
单片机上机考试,河北工业大学 大三
B.把16进制数FFH转换成BCD码,结果存放在20H 22H单元(1) B #64H (2) B B (3) D #10H B.把内部RAM中起始地址为BLK1的数据块传送到外部RAM以BLK2为起始地址的区域,直到遇到“#”字符的ASCII码为止。参考程序如下(1) D @ R0 (2) B SUBB (3) C STOP (4) B POP (5) B MOVX (6) A INC ...