AX寄存器中存放着16位二进制数。试编写一个汇编语言程序,将这4位十六进制数分别转换为相应的ASCⅡ码,并依次存放到PLUS数组的4个字节中去,要求用调用子程序的方法实现

【微机原理】—汇编题

AX寄存器中存放着16位二进制数。试编写一个汇编语言程序,将这4位十六进制数分别转换为相应的ASCⅡ码,并依次存放到PLUS数组的4个字节中去,要求用调用子程序的方法实现。

方法一

DATA  SEGMENT
  PLUS  DB  4 DUP(?)
DATA  ENDS
STACK1 SEGMENT PARA STACK
       DW 20H DUP(0)
STACK1 ENDS
CODE  SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACK1
  START:MOV BX,DATA
        MOV DS,BX
        LEA DI,PLUS
        XOR AX,AX
        CALL BINASC
        MOV AH,4CH
        INT 21H
    BINASC PROC
        MOV CX,4
    LOP:PUSH,CX
        MOV CL,4
        ROL AX,CL
        POP CX
        MOV DL,AL
        AND DL,1111B
        ADD DL,30H
        MOV [DI],DL
        INC DI
        LOOP LOP
        RET
      BINASC ENDP
     CODE ENDS
       END START
        
        

方法二

DATA  SEGMENT
 PLUS DB 4 DUP(?)
DATA  ENDS
CODE SEGMENT
 ASSUME CS:CODE,DS:DATA
 START:MOV BX,DATA
       MOV DS,BX
       LEA SI,PLUS
       MOV BL,AL
       AND BL,0FH
       CALL ASCII
       SHR BL,4
       AND BL,0FH
       CALL ASCII
       MOV AL,AH
       MOV BL,AL
       AND BL,0FH
       CALL ASCII
       SHR BL,4
       AND BL,0FH
       CALL ASCII
       MOV AL,AH
       MOV AH,4CH
       INT 21H
  ASCII PROC
       MOV [SI],BL
       ADD [SI],30H
       INC SI
       RET
   ASCII ENDP
  CODE ENDS
     END START
     
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值