《汇编语言》王爽第三版实验16

问题:这里有个坑,如果像书本那样写,安装了7ch中断程序后,你再另写一个测试程序引发7ch中断程序,执行时会找不到table里面的子程序入口地址。书本代码如下:

assume cs:code

code segment

setscreen:	
	jmp short set
	
	table dw clean_screen,set_foreColor,set_backColor,scroll_up
set:
	push bx
	cmp ah,3	;参数ah存放功能号,功能号范围是0-3,对应4种功能
	ja sret
	mov bl,ah
	mov bh,0
	add bx,bx		;根据ah中的功能号计算对应子程序在table表中的偏移
	call word ptr table[bx]	;调用对应的子程序功能

sret:	pop bx
	iret



clean_screen:
	push bx
	push es
	push cx
	mov bx,0b800h
	mov es,bx
	mov bx,0		
	mov cx,2000
print_space:
	mov byte ptr es:[bx],' '
	add bx,2
	loop print_space

	pop cx
	pop es
	pop bx

	ret


set_foreColor:
	push bx
	push cx
	push es
	mov bx,0b800h
	mov es,bx
	mov bx,1		;显示缓存区奇数位存属性
	mov cx,2000
set012bit:
	and byte ptr es:[bx],11111000b
	or es:[bx],al	;参数al为颜色值
	add bx,2
	loop set012bit

	pop es
	pop cx
	pop bx
	ret



set_backColor:
	push bx
	push cx
	push es
	mov cl,4
	shl al,cl
	mov bx,0b800h
	mov es,bx	
	mov bx,1		;
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值