|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code,ds:data,ss:stack
data segment ;数据段
db 'Time:15:35 Date:2013/10/20 hdy',0
data ends
stack segment ;栈空间段
db 100 dup (0)
stack ends
code segment ;代码段
start: mov ax,stack
mov ss,ax
mov sp,100
mov ax,data
mov ds,ax
mov si,0 ;偏移量0
mov dh,12 ;打印到12行处
mov dl,0 ;最左边开始显示字符
mov cl,084h ;颜色属性 黑底红字加闪烁
call putchars ;打印到屏幕
mov ax,4c00h
int 21h
;函数功能:在指定位置打印指定字符串
;参数:dh行号 dl列号 cl颜色 ds:si指向字符串的首地址
putchars: sub sp,20
mov bp,sp
push ax
push bx
push cx
push dx
push si
push di
push es
mov ax,0b800h ;获取显存段地址
mov es,ax
xor ax,ax
mov al,dh ;获取行号
sub al,1
add dl,dl
mov byte ptr ss:[bp+2],dl;获取列号
mov bx,160
mul bx
add ax,ss:[bp+2] ;获取偏移地址
mov word ptr ss:[bp],ax
mov al,cl ;获取颜色
xor cx,cx
mov di,0
mov bx,0
xie_char: mov cl,ds:[si+bx];获取字符
jcxz put_return
push bx
mov bx,ss:[bp]
mov byte ptr es:[di+bx],cl ;写字符
mov byte ptr es:[di+bx+1],al ;写颜色
add di,2
pop bx
inc bx
jmp xie_char
put_return: pop es ;函数返回
pop di
pop si
pop dx
pop cx
pop bx
pop ax
add sp,20
ret
code ends
end start
谢谢各位指导 学习!!
|
|