|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这一章内容稍微多了一点,所以多花了一些时间才看完。
但做题的思路依旧是比较畅快的~
有些地方不知道算不算是奇技淫巧了
感觉对编程这件事越来越上道了
- ;按下“A”键松开后,显示满屏幕的“A”,其他键照常处理。
- ;思路:1、断码
- ; 2、“A”需要状态键
- ;
- ;
- assume cs:code
- stack segment
- db 128 dup (0)
- stack ends
- code segment
- start: mov ax,stack
- mov ss,ax
- mov sp,128
- push cs
- pop ds
- mov ax,0
- mov es,ax
- mov si,offset int9
- mov di,204h
- mov cx,offset int9end-offset int9
- cld
- rep movsb
- push es:[9*4]
- pop es:[200h]
- push es:[9*4+2]
- pop es:[202h]
- cli
- mov word ptr es:[9*4],204h
- mov word ptr es:[9*4+2],0
- sti
- mov ax,4c00h
- int 21h
- int9: push ax
- push bx
- push cx
- push es
- in al,60h
- pushf
- call dword ptr cs:[200h]
- cmp al,9Eh
- jne int9ret
- mov ax,40h
- mov es,ax
- mov al,es:[17h]
- and al,00000011b
- cmp al,0
- je int9ret
- mov ax,0b800h
- mov es,ax
- mov bx,0
- mov cx,2000
- mov al,41H
- s: mov byte ptr es:[bx],al
- add bx,2
- loop s
- int9ret: pop es
- pop cx
- pop bx
- pop ax
- iret
- int9end:nop
- code ends
- end start
复制代码 |
|