王爽汇编第四版 实验16 编写包含多个功能子程序的中断例程最佳答案

安装一个新的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:[7ch
4+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章了,我的主要目的也就是看懂汇编指令和基本的使用,第十七章我大概阅读了一下。差不多也就是对硬件的编写,我要到后期来看一下。祝同学们新的一年快乐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值