如何在汇编中打印无符号数字数组



这是我的代码:

    .model  small
.stack   100h
.data
    A db 2,-5,3,4,-8
    N equ 5 
.code
    mov ax, @data
    mov ds, ax
    mov si,offset A
    mov cl,1
start:  
    cmp cl,N
    je sof
    mov al,[si]
    cmp al,[si+1]
    jg change
    jmp next
change:
    mov ah,al
    mov al,[si+1]
    mov [si],ah
    mov [si+1],al
    jmp next
next:
    inc si
    inc cl
    jmp start
sof:
    mov ah,9
    mov cx, offset A
    int 21h

.exit
end

我得到一个奇怪的输出,有很多奇怪的字符:/

需要在0到9的范围内的数字上加上30h才能显示一个ascii字符。要显示一个字符,使用

                                ;al = digit to display
        mov     dl,al
        add     dl,030h
        mov     ah,02           ;display character (in dl)
        int     21h

最新更新