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

从键盘输入两个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

;=================================


提问者评价:太给力了,你的回答完美的解决了我的问题 !


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值