鱼C论坛

 找回密码
 立即注册
查看: 5748|回复: 8

[已解决]请问汇编语言怎么输出寄存器中的数

[复制链接]
回帖奖励 10 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 20%)
发表于 2017-4-7 11:37:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,谢谢
最佳答案
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, [bp + 4] ;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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-7 12:19:45 | 显示全部楼层
输出到屏幕?还是。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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, [bp + 4] ;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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-16 12:12:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-16 12:14:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-16 12:15:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-16 17:26:00 | 显示全部楼层
...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 15:40:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 15:30:25 | 显示全部楼层
这么久了鱼币还没有领完
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 19:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表