您的位置:首页 > 编程语言

80x86 汇编语言编程:要求显示完整的算式

2016-01-25 12:12 239 查看
从键盘输入两个2位十六进制数,相加,

结果以十进制形式显示在屏幕上。(要求结果显示完整的算式)

题目链接:http://zhidao.baidu.com/question/983257464781691619.html

做而论道编程如下:

;=================================
ASSUME  CS:CODE, DS:DATA
DATA   SEGMENT
    MSG1   DB  13, 10, 'Please  input  number_1: $'
    MSG2   DB  13, 10, 'Please  input  number_2: $'
    CRLF   DB  13, 10, '$'
    NN     DB  ?, ?
    MM     DB  ?
DATA   ENDS
;---------------------------------
CODE   SEGMENT

START:
    MOV   AX, DATA
    MOV   DS, AX
;-----------------------
    LEA   DX, MSG1
    MOV   AH, 9
    INT   21H
    CALL  IN_CHAR
    MOV   MM, AL

    LEA   DX, MSG2
    MOV   AH, 9
    INT   21H
    CALL  IN_CHAR
    MOV   NN, AL

    LEA   DX, CRLF
    MOV   AH, 9
    INT   21H

    MOV   AL, MM
    CALL  OUT_NUM

    MOV   DL, '+'
    MOV   AH, 2
    INT   21H

    MOV   AL, NN
    CALL  OUT_NUM

    MOV   DL, '='
    MOV   AH, 2
    INT   21H

    MOV   AL, NN
    ADD   AL, MM
    MOV   AH, 0
    ADC   AH, 0
    CALL  OUT_1

EXIT:
    MOV   AH, 4CH
    INT   21H             ;返回DOS
;---------------------------------
IN_CHAR:
    LEA   BX, NN
    MOV   CX, 2
IN_1:
    MOV   AH, 1
    INT   21H
    CMP   AL, '0'
    JB    IN_1
    CMP   AL, 'F'
    JA    IN_1
    CMP   AL, '9'
    JBE   _09
    CMP   AL, 'A'
    JB    IN_1
    SUB   AL, 7
_09:
    SUB   AL, 30H
    MOV   [BX], AL
    INC   BX
    LOOP  IN_1
    XCHG  AL, NN
    MOV   BL, 16
    MUL   BL
    ADD   AL, NN
    RET
;---------------------------------
OUT_NUM:
    MOV   AH, 0
OUT_1:
    MOV   DX, 0
    MOV   BX, 100
    DIV   BX
    XCHG  AX, DX
    CALL  OUT_CHAR
    MOV   DX, 0
    MOV   BX, 10
    DIV   BX
    XCHG  AX, DX
    CALL  OUT_CHAR
    MOV   DL, AL
    CALL  OUT_CHAR
    RET
;---------------------------------
OUT_CHAR:
    PUSH  AX
    ADD   DL, 30H
    MOV   AH, 2
    INT   21H
    POP   AX
    RET
;---------------------------------
CODE   ENDS
    END  START
;=================================

提问者评价:太给力了,你的回答完美的解决了我的问题 !
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: