王爽汇编 实验16 编写包含多个功能子程序的中断例程

assume cs:code,ss:stack

stack segment
db 128 dup (0)
stack ends

code segment
start: mov ax,cs
mov ds,ax
mov si,offset int7c

    mov ax,0
    mov es,ax
    mov di,200h

    cld
    mov cx,offset int7c_end - offset int7c
    rep movsb

    cli
    mov word ptr es:[7ch*4],200h
    mov word ptr es:[7ch*4+2],0
    sti

    mov ax,4c00h
    int 21h

int7c: push bx
push si

    jmp short int7c_s

int7cd: dw offset sub1 - offset int7c + 200h
dw offset sub2 - offset int7c + 200h
dw offset sub3 - offset int7c + 200h
dw offset sub4 - offset int7c + 200h

int7c_s:mov bl,ah
mov bh,0
add bx,bx

    mov si,offset int7cd - offset int7c + 200h

    call word ptr cs:[bx+si]

int7c_ok:
pop si
pop bx
iret

sub1: push bx
push es
push di
push cx

    mov bx,0b800h
    mov es,bx
    mov di,0

    mov cx,2000

sub1_s: mov byte ptr es:[di],’ ’
add di,2
loop sub1_s

sub1_ok:pop cx
pop di
pop es
pop bx
ret

sub2: push bx
push es
push di

    mov bx,0b800h
    mov es,bx
    mov di,1

    mov cx,2000

sub2_s: and byte ptr es:[di],11111000b
or es:[di],al
add di,2
loop sub2_s

sub2_ok:pop di
pop es
pop bx
ret

sub3: push bx
push es
push di
push cx

    mov bx,0b800h
    mov es,bx
    mov di,1

    mov cx,2000

sub3_s: and byte ptr es:[di],10001111b
or es:[di],al
add di,2
loop sub3_s

sub3_ok:pop cx
pop di
pop es
pop bx
ret

sub4: push bx
push ds
push si
push es
push di

    mov bx,0b800h
    mov ds,bx
    mov si,160

    mov bx,0b800h
    mov es,bx
    mov di,0

    cld
    mov cx,24

sub4_s: push cx
mov cx,160
rep movsb
pop cx
loop sub4_s

    mov cx,80

sub4_s1:mov byte ptr es:[di],’ ’
add di,2
loop sub4_s1

sub4_ok:pop di
pop es
pop si
pop ds
pop bx
ret

int7c_end: nop

code ends
end start

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值