内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组台的十进制和,并存到以THIRD开始的单元.
DATA SEGMENTFIRST DD 34341212HSECOND DD 78785656HTHIRD DB ?,?,?,?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,FIRST LEA DI,SECOND LEA BX,THIRD MOV CX,4 CLCAGAIN: MOV AL,BYTE PTR[SI] MOV DL,BYTE PTR[DI] ADC AL,DL DAA MOV BYTE PTR[BX],AL INC SI INC DI INC BX LOOP AGAIN JC AA MOV BYTE PTR[BX],0 JMP EXITAA:MOV BYTE PTR[BX],1EXIT:MOV AH,4CH INT 21HCODE ENDSEND START
举一反三
- 编程:内部RAM 30H和外部RAM 2200H开始的单元分别存放着两个8字节十六进制数(低位字节存放在前),请将二者相加(不考虑溢出情况),并将和存入内部RAM 40H开始的单元中。
- 设两个十进制数分别在内部RAM 40H单元和50H单元开始存放(低位在前),其字节长度存放在内部30H单元中。编程实现两个十进制数求和,并把求和结果存放在40H开始的单元中。 答案:MOV R0,#40H MOV R1,#50H MOV R2,#30H ——————[br][/br] LOOP:MOV A,@R0 ADDC A,@R1 —————— MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP RET
- 数据定义语句如下所示:FIRST DB 90H,5FH, 6EH,69HSECOND DB 5 DUP(?)THIRD DB 5 DUP(?)自FIRST单元开始存放的是一个四字节的十六进制数(低位字节在前),要求:编一段程序将这个数左移两位后存放到自SECOND开始的单元,右移两位后存放到自THIRD开始的单元。(注意保留移出部分)
- 编写程序,将片内RAM32H单元内的两个BCD码十进制数拆开并变成相应的ASCII码,分别存入31H和32H单元
- BCD码之间及BCD码与任意进制数之间的转换一般以十进制数作为过渡
内容
- 0
BCD码与任意进制数之间的转换一般以十进制数作为过渡。
- 1
BCD 码用 4 位二进制数表示一位十进制数,十进制数9 对应的进制数为 。
- 2
数据定义语句如下所示:FIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUP(?)THIRD DB 5 DUP(?)FORTH DB 4 DUP (?)自FIRST 单元开始存放的是一个四字节的十六进制数(低位字节在前),要求:编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自THIRD 开始的单元,求补后放到FORTH开始的单元。(注意保留移出部分)
- 3
8421BCD码又称什么码,是用一组几位二进制码表示一位十进制数 A: 二——十 进制 四 B: 二——十 进制 二 C: 十 进制 —— 二 四 D: 十 进制 —— 二 二
- 4
____=39H ____=00H 将____,____两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入____单元,0®____