|
主题 : : 最新捷报`~` [待解决] |
回复[ 19次 ]
点击[ 1014次 ] | |
荣誉值:3
信誉值:0
注册日期:2007-08-07 13:15 |
今天是第10天,突破16章.附上实验16代码.
assume cs:code
code segment
int7c:jmp short int7c_set
table dw sub1,sub2,sub3,sub4
int7c_set:push bx
cmp ah,3
ja int7c_exit
mov bh,0
mov bl,ah
add bx,bx
call word ptr table[bx]
int7c_exit:pop bx
iret
sub1:push bx
push cx
push es
mov bx,0b800h
mov es,bx
mov cx,2000
mov bx,0
sub1s:mov byte ptr es:[bx],' '
add bx,2
loop sub1s
pop es
pop cx
pop bx
ret
sub2:push ax
push bx
push cx
push es
mov bx,0b800h
mov es,bx
mov bx,1
mov cx,2000
sub2s:and byte ptr es:[bx],11110000b
or es:[bx],al
add bx,2
loop sub2s
pop es
pop cx
pop bx
pop ax
ret
sub3:push ax
push bx
push cx
push es
mov bx,0b800h
mov es,bx
mov cl,4
shl al,cl
mov cx,2000
mov bx,1
sub3s:and byte ptr es:[bx],00001111b
or es:[bx],al
add bx,2
loop sub3s
pop es
pop cx
pop bx
pop ax
ret
sub4:push cx
push si
push di
push ds
push es
mov si,0b800h
mov es,si
mov ds,si
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 si,0
sub4s2:mov byte ptr es:[si],' '
add si,2
loop sub4s2
pop es
pop ds
pop di
pop si
pop cx
ret
int7c_end:nop
start:mov ax,0
mov es,ax
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset int7c
mov cx,offset int7c_end-offset int7c
cld
rep movsb
cli
mov word ptr es:[7ch*4],0
mov word ptr es:[7ch*4+2],20h
sti
mov ax,4c00h
int 21h
code ends
end start | | |