|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 cenjie88 于 2012-2-10 14:09 编辑
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start:
mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
dtoc:
push dx
push cx
push bx
push si
push ax
mov bx,0
s1:mov dx,0
mov cx,10
div cx
mov cx,ax
jcxz s2
push dx
inc bx
jmp s1
s2:push dx
inc bx
mov cx,bx
s:pop ax
add ax,30h
mov ds:[si],ax
add si,2
loop s
pop ax
pop si
pop bx
pop cx
pop dx
ret
show_str:
push dx
push cx
push bx
push si
push ax
mov ax,0b800h
mov es,ax ;显存段地址
mov al,0a0h
sub dh,1
mul dh
mov dh,0
add ax,dx
mov bx,ax ;得出显存8行3列偏移地址
mov ah,cl ; 字符颜色属性给到ah
mov cx,5 ;已知要循环5次。
s11:
mov al,ds:[si] ;事先改好的准备传输到显存
mov es:[bx+si],al
mov es:1h[bx+si],ah
inc si
inc si
loop s11
pop ax
pop si
pop bx
pop cx
pop dx
ret
mov ax,4c00h
int 21h
code ends
end start
|
|