鱼C论坛

 找回密码
 立即注册
查看: 4678|回复: 0

[技术交流] 汇编实验16

[复制链接]
发表于 2021-3-15 08:06:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:code
code segment

start:        
mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
mov si,offset int7
mov di,200h
mov cx,offset int7chend-offset int7
cld
rep movsb
cli
mov word ptr es:[7ch*4],200H
mov word ptr es:[7ch*4+2],0
sti
mov ax,4c00h
int 21h
org 200h
int7:
jmp int71
table dw sub1,sub2,sub3,sub4
int71:
push bx
cmp ah,3
ja int72
mov bl,ah
add bx,bx
call word ptr table[bx]

int72:
pop bx
iret


sub1:                
                        push cx
                        push es
                        push bx
                        mov cx,2000
                        mov bx,0b800h
                        mov es,bx
                        mov bx,0
        sub1s:        mov byte ptr es:[bx],' '
                        add bx,2
                        loop sub1s
                        pop bx
                        pop es
                        pop cx
                        ret

sub2:
                        push cx
                        push bx
                        push es
                        mov cx,2000
                        mov bx,0b800h
                        mov es,bx
                        mov bx,1
        sub2s:        and byte ptr es:[bx],11111000b
                        or byte ptr es:[bx],al
                        add bx,2
                        loop sub2s
                        pop es
                        pop bx
                        pop cx
                        ret


sub3:
                        push cx
                        push bx
                        push es
                        mov cx,2000
                        mov bx,0b800h
                        mov es,bx
                        mov bx,1
        sub3s:        and byte ptr es:[bx],10001111b
                        shl al,1
                        shl al,1
                        shl al,1
                        shl al,1
                        or byte ptr es:[bx],al   
                        add bx,2
                        loop sub3s
                        pop es
                        pop bx
                        pop cx
                        ret
                        

sub4:                
                        push cx
                        push bx
                        push es
                        push ds
                        push di
                        push si
                        
                        mov bx,0b800h
                        mov es,bx
                        mov ds,bx
                        mov si,160                
                        mov di,0                
                        mov cx,24                
                        cld                                
        sub4s:  push cx
                        mov cx,160                
                        rep movsb
                        pop cx
                        loop sub4s
                        
                        mov cx,80
                        mov bx,0
        sub4s1: mov byte ptr es:[bx],' ';
                        add bx,2
                        loop sub4s1
                        
                        pop si
                        pop di
                        pop ds
                        pop es
                        pop bx
                        pop cx
                        ret
                        
                        
int7chend: 
nop
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 15:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表