assume cs:code,ds:data
data segment
s1 db 'screen function!','$'
s2 db 'q is quit!','$'
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset screen
mov ax,0
mov es,ax
mov di,200h
mov cx,offset funcend-offset screen
cld
rep movsb
mov word ptr es:[4*7ch],0
mov word ptr es:[4*7ch+2],20h
mov ah,2
mov bh,0
mov dh,0
mov dl,12
int 10h
mov ax,data
mov ds,ax
mov dx,offset s1
mov ah,9
int 21h
mov ah,2
mov bh,0
mov dh,1
mov dl,12
int 10h
mov ax,data
mov ds,ax
mov dx,offset s2
mov ah,9
int 21h
mov al,1
mov ah,1 ;输出s1,s2字符串,主要是为了便于观察效果
int 7ch
mov ax,4c00h
int 21h
screen:
jmp short c1
table: dw offset sub1-offset screen,offset sub2-offset screen,offset sub3-offset screen,offset sub4-offset screen
c1: push bx
push ax
push ax
cmp ah,3
ja sret
mov bl,ah
mov bh,0
add bx,bx
call word ptr cs:[offset table-offset screen+bx]
call delay
pop ax
inc ah
inc al
jmp short c1
sret:
pop ax
pop bx
iret
delay: ;延时子程序
push ax
push dx
mov dx,1500h
mov ax,0
s3: sub ax,1
sbb dx,0
cmp ax,0
jne s3
cmp dx,0
jne s3
pop dx
pop ax
ret
sub1: ;清屏
push bx
push cx
push es
mov bx,0b800h
mov es,bx
mov bx,0
mov cx,2000
sub1s:mov byte ptr es:[bx],' '
add bx,2
loop sub1s
pop es
pop cx
pop bx
ret
sub2: ;设置前景色
push bx
push cx
push es
mov bx,0b800h
mov es,bx
mov bx,1
mov cx,2000
sub2s:and byte ptr es:[bx],11111000b
or es:[bx],al
add bx,2
loop sub2s
pop es
pop cx
pop bx
ret
sub3: ;设置背景色
push bx
push cx
push es
mov cl,4
shl al,cl
mov bx,0b800h
mov es,bx
mov bx,1
mov cx,2000
sub3s:and byte ptr es:[bx],10001111b
or es:[bx],al
add bx,2
loop sub3s
pop es
pop cx
pop bx
ret
sub4: ;向上滚动一行
push cx
push si
push di
push es
push ds
mov si,0b800h
mov es,si
mov ds,si
mov si,160
mov di,0
cld
mov cx,24
sub4s: push cx
mov cx,160
rep movsb
pop cx
loop sub4s
mov cx,80
mov si,0
sub4s1: mov byte ptr es:[160*24+si],' '
add si,2
loop sub4s1
pop ds
pop es
pop di
pop si
pop cx
ret
funcend:nop
code ends
end start
今天终于把实验16实现,唯一的遗憾要在全屏DOS下能看到效果呵呵!
- [hyxzsgs] url=http://www.hyzsi.com"]深圳装修公司[/url] [url=htt 07/25 11:43
- [游客] 汇编网完蛋了 12/09 15:22
- [游客] 这事确实是汇编网做的不对。 11/30 12:02
- [x_miracle] 解释下,谢谢! 11/18 22:18
- [游客] 抄袭门 11/12 14:16
- [x_miracle] 我也一头雾水 11/10 09:15
- [游客] 大家提到的“抄袭门”到底是怎么回事? 有人帮忙解释一下吗? 11/09 18:18
- [游客] 就凭几个抄袭别人代码的“专家”还能写出什么好东西嘛????!!! 11/02 16:59
- [x_miracle] 谢谢已经解决了,现在在做课程设计2了 04/16 10:00
- [younggay] 不错,加油。 04/15 18:07