看8086汇编 书上的一个小作业 键盘中断例程编写
2014-10-22 16:19
417 查看
;任务:在屏幕中间依次显示‘a'~’z' 并可以让人看清。在显示的过程中 按下Esc后,改变显示的颜色 assume cs:code ;栈 stack segment db 128 dup (0) stack ends ;store data data segment dw 0,0 data ends ; code segment start: mov ax,stack mov ss,ax mov sp,128 ;ss:sp mov ax,data mov ds,ax ;ds mov ax,0 mov es,ax ;es ;将键盘原来的中断例程地址复制到ds:[0]中 push es:[9*4] pop ds:[0] push es:[9*4+2] pop ds:[2] ; ;将新的int9地址写入中断向量表 mov word ptr es:[9*4],offset int9 mov es:[9*4+2],cs ;int9 ;屏幕依次输出a---z mov ax,0b800h mov es,ax mov ah,'a' s: mov es:[160*12+40*2],ah call delay ;delay用来延时 也就是空循环 inc ah cmp ah,'z' jna s mov ax,0 mov es,ax ;恢复中断向量表 push ds:[0] pop es:[9*4] push ds:[2] pop es:[9*4+2] ;exit mov ax,4c00h int 21h ;延时 delay: push ax ;因为用到dx,ax 先将他们保存到栈中 push dx mov dx,1000h mov ax,0 s1: sub ax,1 sbb dx,0 cmp ax,0 jne s1 cmp dx,0 jne s1 pop dx pop ax ret ;call---ret 是一对 ;------------------------------ ;int9 int9: ;我们新编写的中断例程 push ax push bx push es ;保存环境 in al,60 ;从键盘读取一个字符 pushf pushf pop bx and bh,11111100b push bx popf call dword ptr ds:[0];调用原来的int9 cmp al,1 ;1表示Esc jne int9ret mov ax,0b800h mov es,ax inc byte ptr es:[160*12+40*2+1] ;变色 int9ret: ;恢复环境颜色 pop es pop bx pop ax iret code ends end start
相关文章推荐
- 第二章作业题51.3(编写一个程序从键盘输入10个数,要求输出其中最小的。)
- 8086汇编语言自学经验分享 使用Int21h中断例程中的9号子程序实现hello world
- 编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处
- 汇编试验十三:编写、应用中断例程
- 用汇编编写一个从键盘上输入并排序的程序
- 汇编语言: 编写一个程序,从键盘输入一个不长于8位的四进制数,并将所输入的数以10进制数 形式显示出来。
- 汇编语言: 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,
- 作业 4 函数应用 编写一个程序,判断从键盘接收的数字是否为回文数字。回文数字就是顺着看和倒着看是相同的数。如121、656、2332等
- 汇编题目:编写包含多个功能子程序的中断例程
- 汇编语言: 试编写一段程序,从键盘接收一个-32768-32767 间的十进制有符号数,并在终端上 显示与它等值的二进制数。
- 汇编语言: 编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制 和四进制数形式显示出所输入的数。
- 王爽 汇编 实验16 编写包含多个功能子程序的中断例程
- ***汇编语言 实验16 编写包含多个功能子程序的中断例程
- 汇编语言: 试编写一段程序,从键盘接收一个 0-65535 间的十进制无符号数,并在终端上显示与 它等值的二进制数。
- 汇编,编写并安装int 7ch中断例程,功能为完成loop指令的功能
- 王爽 汇编 实验16 增加键盘中断调用int 7ch中断例程
- 汇编语言----实验16--编写包含多个功能子程序的中断例程
- 王爽汇编 实验13编写int 7cH中断例程(1)
- 汇编语言: 编写一个程序,新建一个文件:d:\abc.txt,从键盘输入文件的内容(不超过100个字 符)。然后新建一个文件:d:\def.txt,将d:\abc.txt文件的内容复制到d:\def.
- 用汇编实现中断的一个小程序