汇编语言王爽 实验十五
安装一个新的int9中断例程,功能:在DOS下,按’A'键后,除非不在松开,如果松开,就显示满屏幕的‘a’,其他的见照常处理
提示:按下一个键时产生的扫描码为通码
松开一个键后产生的扫描码为断码 断码=通码+80h
设置一个无限循环 作为可输入操作的前提
assume cs:code,ds:data,ss:stackdata segmentdb 128 dup(0)
data endsstack segment stackdb 128 dup(0)
stack endscode segmentstart: mov ax,stackmov ss,axmov sp,128(0)call cpy_new_int9call sav_old_int9 ;将原来的int 9中断例程的入口地址保存在0:200 0:202中call set_new_int9 ;设置中断向量表TESTA: mov ax,1000hjmp TESTAmov ax,4c00hint 21h;========================================
new_int9: push axin al,60hpushfcall dword ptr cs:[200h]cmp al,9ehjne int9Retcall set_screen_letterint9Ret: pop axiret;=======================================
set_screen_letter:push bxpush cxpush dxpush esmov bx,0b800hmov es,bxmov bx,0mov dl,'A'setScreenLetter:mov es:[bx],dladd bx,2loop setScreenLetterpop espop dxpop cxpop bxretnew_int9_end: nop;===========================================
cpy_new_int9:mov bx,csmov ds,bxmov si,OFFSET new_int9mov bx,0mov es,bxmov di,7e00hmov cx,OFFSET new_int9_end-OFFSET new_int9cldrep movsbret ;===========================================
sav_old_int9:mov bx,0mov es,bxclipush es:[9*4]pop es:[200h]push es:[9*4+2]pop es:[202h]sti ret;==============================================
set_new_int9:mov bx,0mov es,bxclimov word ptr es:[9*4],7e00hmov word ptr es:[9*4+2],0stiret;================================================code ends
end start
松开一个键后产生的扫描码为断码 断码=通码+80h
汇编语言王爽 实验十五相关推荐
- 汇编语言王爽-实验9
王爽汇编语言实验9 实验要求 参考资料 代码 assume cs:codedata segmentdb 'welcome to masm'db 02h, 24h, 71j data endscode ...
- 开发日记-20190914 关键词 汇编语言王爽版 第五章
第五章 [BX]和loop指令 5.2 Loop指令 loop指令的格式是:loop标号,CPU执行loop指令的时候,要进行两步操作, (cx)=(cx)-1 判断cx中的值,不为零则转至标号处执行 ...
- 汇编语言---王爽 (实验 8)分析一个奇怪的程序
简介 : 分析下面的程序 , 在运行前思考 , 这个程序可以正常返回吗 ? 运行后再思考 , 为什么是这种结果 ? 通过这个程序加深对相关内容的理解 assume cs:code code segme ...
- 汇编语言王爽 实验第四章
实验一 :创建第一个源程序 在asm文件夹中创建一个名为t2的记事本 编写源文件,其次将其格式修改为asm文件 用masm t2;进行编译生成obj文件 然后用link t2;进行连接生成exe文件 ...
- 汇编语言王爽 实验12
都在代码里面了 assume cs:code,ds:data,ss:stackdata segmentdb 128 dup(0) ;一般把中断输出的字符 写道 0000:0200 -0000:03 ...
- 【汇编语言 王爽】实验14代码
实验需求如下: 编程,以"年/月/日 时:分:秒"的格式显示时间 注意:CMOS RAM中储存着系统的配置信息,除了保存时间信息的单元外,不要向其他单元写入内容,否则将引起一些系统 ...
- 汇编语言 王爽 第四版 实验5
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 实验5 编写.调试具有多个段的程序 1 编译连接下面程序,用debug加载.跟踪,回答问题. assume cs:code,ds:data, ...
- 汇编语言 王爽 第四版 实验1
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 文章目录 实验1 查看CPU和内存,用机器指令和汇编指令编程 1 开始执行命令: 2 指令 过程 3 4 实验1 查看CPU和内存,用机器指 ...
- 汇编语言——王爽版 总结
汇编语言-王爽summary<考试复习版> 摆烂一学期,期末抱佛脚 只针对必要内容总结,并非按目录总结 文章目录 汇编语言-王爽summary<考试复习版> `只针对必要内容总 ...
- 汇编语言 王爽 第四版 第二章 检测点2.2
汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...
最新文章
- 异构计算架构师眼中的AI算法(object detection)
- 处理问题:变量名‘@UserName’已声明。变量名在插叙批次或存储过程内部必须唯一
- Forefront_TMG_2010-TMG发布SSL OWA Exchange 2010
- 8.元组tup.rs
- java spi机制_Java是如何实现自己的SPI机制的? JDK源码(一)
- PHP字符串函数hex2bin( 转换十六进制字符串为二进制字符串)
- 【SAP Abap】SAP Eclipse ADT开发环境配置与应用
- 前端直传阿里云OSS
- [数值计算-1]:数学建模、科学计算、数值计算的关系
- STM32LED--基于HAL库(LCD与LED冲突?一文看懂如何精准劝架)
- 用matlab求解分支定界法,matlab分支定界法程序
- 墨卡托经纬度坐标转换
- 从 160 万到 1.5 亿美元 ,开源软件迎来融资热潮
- 【雅思大作文考官范文】——第十一篇:'homework' essay
- 坪山区关于开展2022年度科技创新专项资金申报工作的通知
- Java 8 新增函数式接口到底是什么?
- 飞鱼科技<校招开发面试官>面试经验分享
- 完成你的第一个智能无人机
- MMA-Mathematica定义函数
- 德鲁克:卓有成效的管理者,一次只做一件事
热门文章
- SourceTree使用笔记 ssh-key配置
- java swing 飞机大战游戏 github 免费 开源 公开 源码
- 【QQ机器人】来认领一只派蒙Bot吧:QQ娱乐机器人,免费开源、易搭建、20余种功能集成、可扩展
- 【Android 12 AOSP学习】Android 12源码下载编译
- Third《高质量程序设计指南—C++/C语言》(第二版)
- live2d_原画人插画教程,想知道live2d虚拟主播是怎么制作出来的吗?
- 【MFC开发(2)】新建一个对话框MFC项目(vs2013)
- java并发包 atomic_Java并发包之AtomicXX
- matlab2012安装过程中退出,Matlab 2012安装图解
- windows配置Hadoop开发环境