CalvinD 发表于 2017-4-7 11:37:56

请问汇编语言怎么输出寄存器中的数

如题,谢谢

zlj19931010 发表于 2017-4-7 12:19:45

输出到屏幕?还是。。。

人造人 发表于 2017-4-7 15:57:15

assume cs:code, ss:stack

stack segment
        db 100 dup(?)
stack ends

code segment


;显示十六进制数到屏幕
;void show_hex(word data);
show_hex:
        push bp
        mov bp, sp
        ;sub sp, 10h
       
        push ax
        push cx
        push bx
        push dx
       
        mov ax, 0b800h
        mov es, ax
        xor si, si ;es:si -> 当前显示位置
       
        mov ax, ;mov ax, data
       
       
        mov cx, 4
show_hex_s:
        mov bx, ax
        and bx, 0f000h
       
        push cx
        mov cl, 12
        shr bx, cl
        pop cx
       
        cmp bx, 0ah
        jl show_hex_less_a
       
        sub bx, 0ah
        add bx, 'A'
        jmp show_hex_less_n
       
show_hex_less_a:
        add bx, '0'

show_hex_less_n:
        push ax
       
        ;输出bl中的字符
        mov ah, 0eh
        mov al, bl
        int 10h
       
        pop ax
       
       
        push cx
        mov cl, 4
        shl ax, cl
        pop cx
        loop show_hex_s
       
       
        pop dx
        pop bx
        pop cx
        pop ax
       
        mov sp, bp
        pop bp
        ret

start:
        mov ax, stack
        mov ss, ax
        mov sp, 100
       
        mov cx, 0ffffh
s:
        ;显示cx中的值
        push cx
        call show_hex
        add sp, 2
       
        ;输出空格
        push ax
        mov ah, 0eh
        mov al, ' '
        int 10h
       
        loop s
       
        mov ax,4c00h
        int 21h
code ends

end start

whdd 发表于 2018-9-16 12:12:58

{:9_226:}

whdd 发表于 2018-9-16 12:14:48

{:5_105:}

whdd 发表于 2018-9-16 12:15:31

{:5_106:}

钱闻韬 发表于 2018-9-16 17:26:00

...

majian890324 发表于 2020-5-2 15:40:59

{:9_231:}

liuzhengyuan 发表于 2020-5-5 15:30:25

这么久了鱼币还没有领完{:10_250:}
页: [1]
查看完整版本: 请问汇编语言怎么输出寄存器中的数