汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色

我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法

利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理。

;任务:安装一个新的int 9中断例程,
;功能:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理。

assume cs:code

stack segment
db 30h dup(0)
stack ends

data segment
db 20h dup(0)
data ends

code segment
start: 

    mov ax,0
    mov es,ax
    mov di,200h
    mov ds,ax
    mov si,[9*4]
    mov cx,4
    cld
    rep movsb

    mov ax,cs
    mov ds,ax
    mov si,offset s
    mov cx,offset se - offset s;设置从标号sqrend到标号sqr的转移位移
    cld
    rep movsb
    mov word ptr es:[9*4],200h
    mov word ptr es:[9*4+2],0

    mov ax,4c00h
    int 21h

    s:
    push ax
    push es
    mov ax,0b800h
    mov es,ax
    push cx
    mov cx,2000
    push bx
    mov bx,1
    in al,60h
    cmp al,3bh
    jne s1
    s0:
;    add byte ptr es:[bx],10h
    inc byte ptr es:[bx]
    add bx,2
    loop s0
    s1:
    int 80h
    pop bx
    pop cx
    pop es
    pop ax
    iret
    se:nop

    mov ax,4c00h
    int 21h

code ends
end start

运行:位使用的win7+masm6.15,所以把上面的代码编译、链接、运行后,在当前cmd窗口输入debug回车,然后按F1键,就可以看到效果了

时间: 2024-10-13 08:45:26

汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色的相关文章

在屏幕中间显示,按ESC键后改变字符的颜色

程序功能:编写程序在屏幕中间显示“a”~“z”,并可以让人看清,这个任务比较好实现. (1)在b800:[ 160*12+40*2]处存入a的ASCII码.(2)在循环中使用一个100000000000H次的循环空转达到延迟效果.(3)按键盘引发int9中断改变颜色 那么如何实现,按下Esc 键后,改变显示的颜色呢? 键盘输入到达60h 端口后,就会引发9号中断,CPU 则转去执行int 9中断例程. 我们可以编写int 9中断例程,功能如下: ?(1)从60h 端口读出键盘的输入: ?(2)调

汇编题目:按A键,当松开的时显示字母A

安装一个新的int9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏的“A”:其他的按键照常处理.提示:按下一个键时产生的扫描码称为通码,松开一个键时产生的扫描码称为断码,断码 = 通码 + 80h 我把程序改了下,按c键,在屏幕上显示B字母,程序代码如下: ;程序功能:按A键,当松开的时候在屏幕的80*25的里面全部显示字母A,不松开则不作任何处理,其他的键照常处理. assume cs:code data segment db 100 dup(0) data e

汇编语言实现DOS下的文件目录清单(DIR)

   题目名称:文件目录清单(Dir)    程序设计要求: 1.显示指定目录下的文件清单,包括文件名.扩展名.文件大小(十进制数表示).最后修改日期和时间等项内容(不显示属性为隐含的文件,各项内容之间以制表符的位置起始): 2.根据参数确定显示方式(W:紧凑显示,每个文件只显示文件的文件名及扩展名:P:显示文件的全部信息,对清单进行分页处理,满屏后暂停,并提示按任意键继续显示剩余的信息:无参数则当满屏后作滚屏处理): 3.清单显示完成后,给出所有文件占用空间及磁盘可用空间(十进制数表示). 这

mysql的初识--DOS下的简单命令

DOS下进入 1.通过程序中的mySQL的:MySQL 5.6 Command Line Client直接进入mySQL的命令行: 2.或者通过WIn+R-->输入cmd,然后C:等一层一层找到安装MYSQL的的文件夹运行mysql.exe可执行文件来运行mySQL 输入mySQL的连界密码,然后回车即可进入. 直接输入:?会提示好多命令的方式. ①首先  新建一个数据库.  新建表  及   设置主键: create database testdatabase;(创建数据库) use test

DOS下常用网络命令技巧

DOS,即使对于许多自称了解计算机的人而言,也是一个比较陌生的词汇.然而,在网络管理过程中,DOS命令却是一个不可逾越的障碍,几乎所有的网络命令都运行在DOS界面.对初级用户而言,掌握一些常用网络命令在网络测试和配置操作中非常实用:对高级用户而言,了解网络命令的常用参数和使用技巧,可以获取更多的配置和故障信息,从而更好地.有针对性地解决问题. 一.显示和修改本地ARP列表--ARP ARP(Address Resolution Protocol)是负责将IP地址解析成MAC地址的协议,对于网络中

转载的在DOS下操作mysql

转载原文地址:http://www.server110.com/mysql/201309/1070.html 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2.例2:连接到远程主机上的

学习在dos下使用gcc来编译

这两年里,断断续续的学习和使用c,平时都是在CodeBlocks里写代码,编译程序,点一下按钮就行了.对整个编译过程是一点儿都不了解.相比当年学习java,真的是选择了两个不同的路,当年学习java的时候,全是在dos下学习,javac, java,javaw之类的命令用的那些相当的熟,几年后才开始使用eclipse写代码. 今天在找如何用CodeBlocks编译生成的exe文件添加版本信息时,发现一篇文章,里面介绍到在dos下使用gcc,我就按照上面的提示操作了一下,过程中没有遇到什么问题.

MYSQL使用指南DOS下操作

一.  连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>; 2.例2:连接到远程主机上的MYSQL.假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123

[C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器

作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,便编写了c99int库来智能处理(http://www.cnblogs.com/zyl910/p/c99int_v102.html).如今为了兼容Turbo C++ 3等DOS下的编译器,做了重大改变,不再适合沿用旧名,于是采用了zlstdint这个新名. 一.用法简介 用法很简单——把z_stdint.h.z_inttyp.h这2个文件放到你的项目中,便可以正常的使用C99整数类型及相关的宏了. 范例代码—— #defin