安装一个新的int7ch中断例程,为显示输出提供如下功能子程序
1:清屏
2:设置前景色
3:设置背景色
4:向上滚动一行
入口参数说明如下:
1:用ah寄存器传递功能号:0表示清屏,1表示设置前景色。2表示设置背景色,3表示向上滚动一行;
2:对于1.2号功能,用al传递颜色值。
重要说明:很多人在一个文档中直接测试,使用int 7ch,这样是不对的,需要分开来来。第一把int 7ch的内容放到0000:200处,在重新编写测试txt文档,编译后测试;
如下: 这里是功能子程序1:清屏,放入到安全内存空间0000:200处
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset setscreen
mov ax,0
mov es,ax
mov di,200h
mov cx,offset setscreenend - offset setscreen
cld
rep movsb
cli
mov word ptr es:[7ch4],200h
mov word ptr es:[7ch4+2],0
sti
mov ax,4c00h
int 21h
setscreen:jmp short set
table dw sub1
set :
push bx
cmp ah,3
ja sret
mov bl,ah
mov bh,0
add bx,bx
call word ptr table[bx]
sret:pop bx
iret
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
setscreenend:nop
code ends
end start
这里是功能子程序1:清屏,放入到安全内存空间0000:200处结束
然后再编写测试程序:
assume cs:code
code segment
mov ah,0
int 7ch
mov ax,4c00h
int 21h
code ends
end
然后再编写测试程序结束
我看到有些人,直接写到程序里面调用,那样会导致标号指向位置错误。指向的是当前的sub1,不会指向int 7ch内存的sun1 子程序。这里重要说明,不理解的可以私信我。关于汇编语言这本书 我就看到第16章了,我的主要目的也就是看懂汇编指令和基本的使用,第十七章我大概阅读了一下。差不多也就是对硬件的编写,我要到后期来看一下。祝同学们新的一年快乐。