![]() |
#2
TonyDeng2012-10-13 11:41
|

date segment
db 'GAO SHU WO NI SHI BU SHI CHU NAN HAO MA?','$'
date ends
code segment
assume cs:code,ds:date
start: mov ax,date
mov ds,ax
mov si,0
mov dh,20 ;屏幕显示的行号
mov dl,18 ;屏幕显示的列号
mov cl,2 ;字符的显示颜色
call show_str
mov ax,4c00h
int 21h
show_str:dec dh
mov al,160 ;定位屏幕的输出位置公式 x为行号 y为列号 输出位置内存偏移地址 f(x,y)=x*160+2y
mul dh
mov bx,ax
mov al,2
mul dl
add ax,bx ;ax里面存放的是屏幕最终定位的内存偏移地址
mov bx,0b800h ;显存I/O地址
mov es,bx
mov di,ax
mov ah,cl
s: mov al,[si]
cmp al,'$'
jz over
mov es:[di],ax
inc si
add di,2
jmp s
over: ret
code ends
end start
db 'GAO SHU WO NI SHI BU SHI CHU NAN HAO MA?','$'
date ends
code segment
assume cs:code,ds:date
start: mov ax,date
mov ds,ax
mov si,0
mov dh,20 ;屏幕显示的行号
mov dl,18 ;屏幕显示的列号
mov cl,2 ;字符的显示颜色
call show_str
mov ax,4c00h
int 21h
show_str:dec dh
mov al,160 ;定位屏幕的输出位置公式 x为行号 y为列号 输出位置内存偏移地址 f(x,y)=x*160+2y
mul dh
mov bx,ax
mov al,2
mul dl
add ax,bx ;ax里面存放的是屏幕最终定位的内存偏移地址
mov bx,0b800h ;显存I/O地址
mov es,bx
mov di,ax
mov ah,cl
s: mov al,[si]
cmp al,'$'
jz over
mov es:[di],ax
inc si
add di,2
jmp s
over: ret
code ends
end start
只有本站会员才能查看附件,请 登录
[ 本帖最后由 zhu224039 于 2012-10-13 04:34 编辑 ]