如何打印存储在变量中的整数

时间:2018-11-05 16:51:47

标签: x86-16

所以我有一个8086汇编程序,允许用户输入2位数字,将它们存储在变量中,然后打印出数字:

data segment

    broj db ?


ends

stack segment

    dw 128 dup(0)

ends

code segment

    mov ax, data
    mov ds, ax
    mov es, ax

    mov ah, 1h
    int 21h

    sub al, 48d
    mov bl, 10d
    mul bl

    mov broj, al

    mov ah, 1h
    int 21h
    sub al, 48d
    add broj, al

    mov dl, broj
    sub dl, 48d
    mov ah, 2h
    int 21h

    mov ax, 4c00h
    int 21h

ends

但是,无论何时我输入数字(例如21),它都不会给我该数字,而是会为该值提供ASCII码。

有人可以帮忙吗?!

1 个答案:

答案 0 :(得分:1)

  

但是,无论何时我输入数字(例如21),它都不会给我该数字,而是会为该值提供ASCII码。

如果您向程序输入(输入)一个由2位数字组成的数字,那么您还必须打印2位数字!当前,您的代码仅包含一个字符输出功能。

  • 首先将 broj 中的数字除以10得到一个商(在AL中)和一个余数(在AH中)
  • 将商转换为字符(加48)并打印。
  • 将余数转换为字符(添加48)并打印。

示例:

mov al, broj
mov ah, 0
mov bl, 10
div bl
add ax, "00"
mov dx, ax
mov ah, 02h
int 21h
mov dl, dh
mov ah, 02h
int 21h