(三十)《汇编语言(王爽)》 | 检测点 17.1
文章目录
- 1. 预备知识
- 2. 检测点 17.1
- 3. 总结
1. 预备知识
- 一般的键盘输入,在 CPU 执行完 int 9 中断例程后,都放到了键盘缓冲区。键盘缓冲区中有 16 个字单元,可以存储 15 个按键的扫描码和对应的 ASCII 码。
- BIOS 提供了 int 16h 中断例程供程序员调用,其中包含的一个重要功能是从键盘缓冲区读取一个键盘输入,该功能的编号为 0。从缓冲区读取一个键盘输入,并将其删除;如果键盘缓冲区为空,则循环等待,直到缓冲区中有数据。
mov ah,0
int 16h
;(ah)=扫描码,(al)=ASCII码
如,编程接收用户的键盘输入,输入 r 将屏幕上的字符设置为红色;输入 g 将屏幕上的字符设置为绿色;输入 b 将屏幕上的字符设置为蓝色。
assume cs:code
code segment
start:mov ah,0int 16h ;调用16h中断例程的0号功能从键盘缓冲区读取数据,如果为空则循环等待mov ah,1;最后三位依次为RGBcmp al,'r'je redcmp al,'g'je greencmp al,'b'je bluejmp short sret
;移动一位AH,对应于G
red:shl ah,1
;移动两位AH,对应于R
green:shl ah,1
;不移动AH,对应于B
blue:mov bx,0b800hmov es,bx mov bx,1mov cx,2000
s:and byte ptr es:[bx],11111000bor es:[bx],ahadd bx,2loop s
sret:mov ax,4c00hint 21h
code ends
end start
运行程序,等待用户输入。输入 r:
输入 g:
输入 b:
2. 检测点 17.1
在 int 16h 中断例程中,一定有设置 IF=1 的指令。这种说法对吗?
- IF 用于确定 CPU 是否响应可屏蔽中断,IF=1 时响应中断,IF=0 时不响应中断。
- 当键盘缓冲区为空时,16h 中断例程循环等待,直到缓冲区中有数据。此时,如果键盘输入数据,则会调用 9h 中断将键盘数据写入键盘缓冲区。此时,需设置 IF=1 响应可屏蔽中断 9h。所以,这种说法正确。
3. 总结
- 一般的键盘输入,在 CPU 执行完 int 9 中断例程后,都放到了键盘缓冲区。
- BIOS 提供了 int 16h 中断例程供程序员调用,其中包含的一个重要功能是从键盘缓冲区读取一个键盘输入,该功能的编号为 0。
(三十)《汇编语言(王爽)》 | 检测点 17.1相关推荐
- 汇编语言(第三版)王爽著(实验十)编写子程序
实验内容.程序清单及运行结果 显示字符串: 问题: 显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能.我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行.列).内 ...
- 汇编语言 王爽 第四版 第三章 检测点3.2
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点3.2 1 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中. mov ax,1 ...
- 汇编语言(第三版)王爽著(实验十一)编写子程序
三.实验内容.程序清单及运行结果 1.编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下. 名称:letterc 功能:将以0结尾的字符串中的小写字母转变成大写字母 ...
- 汇编语言(第三版)王爽著(实验八)分析一个奇怪的程序
实验内容.程序清单及运行结果 分析下面的程序,在运行前思考:这个程序可以正确返回吗? 运行后思考:为什么会是这种结果? 通过这个程序加深对相关内容的理解. assume cs:codesg codes ...
- 汇编语言 第3版 王爽 检测点习题部分—答案及详细解析
第一章 基础知识 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为()位. (2)1KB的存储器有() 个存储单元,存储单元的编号从()到() . (3)1KB的存储器可以存 ...
- 汇编语言 王爽 第四版 第二章 检测点2.2
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...
- 汇编语言 王爽 第四版 第六章 检测点6.1
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点6.1 1 下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序: assume cs:codesg cod ...
- 汇编语言——王爽版 总结
汇编语言-王爽summary<考试复习版> 摆烂一学期,期末抱佛脚 只针对必要内容总结,并非按目录总结 文章目录 汇编语言-王爽summary<考试复习版> `只针对必要内容总 ...
- 汇编语言 王爽 第四版 实验5
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 实验5 编写.调试具有多个段的程序 1 编译连接下面程序,用debug加载.跟踪,回答问题. assume cs:code,ds:data, ...
- 汇编语言 王爽第二版 总结
汇编语言 王爽第二版 总结,所以内容都是8086的 summary asssembly ,汇编总结 why: 最初始的编程语言就是使用打孔机,打出来的0 1 代码,然后把卡片插入到电脑中运行然后 看输 ...
最新文章
- java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
- 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
- 破解密码高手王小云教授简介
- 公安计算机专业就业前景,公安视听技术专业毕业后干什么
- jstree 节点拖拽保存数据库
- 151. Reverse Words in a String
- 软件测试工程师和WGT,软件系统测试(WGT)工程师---ATK
- 重要社区链接(资源技术网站)
- [转载]基于TFS实践敏捷-工作项跟踪
- 紫书 习题 8-2 UVa 1610 (暴力出奇迹)
- Cozmo机器人使用中文Scratch3编程案例(codelab)
- Hutool - 身份证验证及其信息解读封装
- GMS Apps安装
- 深度学习:透过神经网络的内在灵魂与柏拉图的哲学理念 输入数字反向的产生数字图像
- 想要感受三星S8屏幕的震撼 先过APP适配这道坎
- win10用不了计算机一级,教你一招解决Win10计算器打不开的问题
- 在html页面添加了评论和回复的显示页面
- linux grep正则表达式与grep用法详解
- linux中 likely与unlikely
- 使用MSF进行提权(windows提权、linux提权、wesng使用)