永发信息网

编写程序将AX中的16进制数转化成ASCII码,并将对应的ASCII码,依次存放到ADDR开始的

答案:3  悬赏:50  手机版
解决时间 2021-02-16 14:03
  • 提问者网友:记得曾经
  • 2021-02-15 13:43
编写程序将AX中的16进制数转化成ASCII码,并将对应的ASCII码,依次存放到ADDR开始的4个字节中。
最佳答案
  • 五星知识达人网友:封刀令
  • 2021-02-15 14:45
;楼上的你不会就不要瞎回答问题!
;编写程序将AX中的16进制数转化成ASCII码,并将对应的ASCII码,
;依次存放到ADDR开始的

STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS

DATAS SEGMENT ;数据段
ADDR DB 4D DUP(?)
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始e69da5e887aae799bee5baa6e79fa5e9819331333264656235化
MOV DS,AX

;{ 本程序段将ax中的十六进制数值转换为asccl码且传送给addr数组
MOV DX,AX ;将ax保护起
;①转换ah的高四位
AND AH,11110000B
MOV CL,04H
SHR AH,CL
ADD AH,30H ;将其转换为相对的ascll码
CMP AH,39H ;判断如果不大于39则证明其位数字继续转换其他的,否则证明是字母还要加7h
JNA SHUZI
ADD AH,07H
SHUZI: MOV [ADDR+0],AH
;②转换ah的低四位
MOV AX,DX ;将之前保护的ax回送
AND AH,00001111B
ADD AH,30H ;将其转换为相对的ascll码
CMP AH,39H ;判断如果不大于39则证明其位数字继续转换其他的,否则证明是字母还要加7h
JNA SHUZI2
ADD AH,07H
SHUZI2: MOV [ADDR+1],AH
;③转换al的高四位
MOV AX,DX ;将之前保护的ax回送
AND AL,11110000B
MOV CL,04H
SHR AL,CL
ADD AL,30H ;将其转换为相对的ascll码
CMP AL,39H ;判断如果不大于39则证明其位数字继续转换其他的,否则证明是字母还要加7h
JNA SHUZI3
ADD AL,07H
SHUZI3: MOV [ADDR+2],AL
;④转换al的低四位
MOV AX,DX ;将之前保护的ax回送
AND AL,00001111B
ADD AL,30H ;将其转换为相对的ascll码
CMP AL,39H ;判断如果不大于39则证明其位数字继续转换其他的,否则证明是字母还要加7h
JNA SHUZI4
ADD AL,07H
SHUZI4: MOV [ADDR+3],AL
;}转换完毕
MOV AX,4C00H ;退出程序
INT 21H
CODES ENDS
END START
全部回答
  • 1楼网友:像个废品
  • 2021-02-15 16:55
ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05 AD1: ADD BYTE PTR [SI+BX-1],30H ADD BYTE PTR [DI+BX-1],30H DEC BX JNZ AD1 MOV CX,05 CLC
  • 2楼网友:何以畏孤独
  • 2021-02-15 16:14
START: MOV SI, 0500H MOV AX, [SI] MOV DX, 0 MOV BX, 10000 DIV BX ADD AL, 30H MOV [SI + 10H], AL MOV AX, DX MOV DX, 0 MOV BX, 1000 DIV BX ADD AL, 30H MOV [SI + 11H], AL MOV AX, DX MOV DX, 0 MOV BX, 100 DIV BX ADD AL, 30H MOV [SI + 12H], AL MOV AX, DX MOV DX, 0 MOV BX, 10 DIV BX ADD AL, 30H MOV [SI + 13H], AL MOV AX, DX ADD AL, 30H MOV [SI + 14H], AL END
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯