用80x86汇编语言,编写一个输出16进制数字的程序

来源:互联网 发布:知乎 神人 常凯申 编辑:程序博客网 时间:2024/06/06 05:19

要求:主程序利用寄存器把AX的值传送给子程序。
   在子程序中将AX中的值以16进制形式显示。
=====================================
DATA  SEGMENT
    D1  DW  13276       ;数: 0~65535
DATA  ENDS
;------------------------------
CODE  SEGMENT
    ASSUME  CS:CODE, DS:DATA
START:
    MOV  AX, DATA
    MOV  DS, AX
;------------------------------
    MOV  AX, D1        ;取来数字.
    CALL DISP_AX
    MOV  DL, 'H'
    MOV  AH, 2
    INT  21H           ;输出H
;------------------------------
    MOV  AH, 4CH
    INT  21H           ;返回DOS
;------------------------------
DISP_AX:
    MOV  BX, 16        ;16进制,要除16
    MOV  CX, 4         ;求4位16进制数.
ABC:
    CWD                ;将AX扩展到DX
    DIV  BX
    PUSH DX            ;保存余数到堆栈.
    LOOP ABC
    MOV  CX, 4         ;显示4位.
ASD:
    POP  DX
    CMP  DL, 10
    JB   A48
    ADD  DL, 7
A48:
    ADD  DL, 48
    MOV  AH, 2
    INT  21H           ;输出.
    LOOP ASD
    RET
;------------------------------
CODE  ENDS 
    END  START
===========================
原题网址:http://zhidao.baidu.com/question/348674856.html
提问者对于答案的评价:谢谢哦
===========================

0 0
原创粉丝点击