关于NASM显示16进制的问题
nasm吧
全部回复
仅看楼主
level 1
mqron 楼主
[ORG 0x7C00]
Main:
;---------------------------------------------------------------------------
push WORD MSG1
push WORD 0x28
push WORD 1
push WORD 0
call x16 ;显示信息
;----------------------------------------------------------------------------------------------
jmp $
;----------------------------------------------------------------------------
x16:
push bp;
mov bp,sp
mov bx,[bp+4]   ;例
mov ax,[bp+6]   ;行
mov cx,[bp+8]   ;色
mov si,[bp+10] ;字
imul ax,80
add ax,bx
imul ax,2
mov di,ax
     mov     ax, 0B800h
     mov     gs, ax
.1:
    or ax,ax
     mov al,[si]
     cbw
     mov cl,16
     idiv cl
     mov dl,al
     mov dh,ah
     cbw
     add ax,xxx
mov bx,ax
     mov al,[bx]
     call .2
     or ax,ax
     mov al,dh
     cbw
     add ax,xxx
mov bx,ax
     mov al,[bx]
     call .2
     inc si
mov al,[si]
cmp al,0
jz .0
jmp .1
.2:
     mov cx,[bp+8]   ;色
     mov ah,cl
         mov     [gs:di],ax     ; 屏幕第 0 行, 第 39 列。
add di,2
ret
.0:
pop bp
ret
;-----------------------------------------------------------------------------------------------
;数据定义
BOOTDRIVER db 0
xxx db "0123456789ABCDEF"
MSG1 db 0x55,0xAA,0x55,"" ;输出信息
db 13 , 10 , 0 ;13 表示回车,10 表示换行,
;0 表示字符串结束
times 510-($-$$) db 0
db 0x55
db 0xAA
这段为什么不是显示 55 AA 55 0D 0A 呢
而是 55 和别的字符 55 0D 0A 呢
2011年02月08日 07点02分 1
1