汇编题目:编写包含多个功能子程序的中断例程
安装一个新的int 7ch中断例程,为显示输出提供如下的功能子程序。
(1)清屏。
(2)设置前景色。
(3)设置背景色。
(4)向上滚动一行
(一)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
(二)对于2、3号功能,用al传递颜色值,(al)∈{0,1,2,3,4,5,6,7}。
代码如下:
;功能:安装一个新的int7ch中断例程,实现一个子程序 setScreen ,提供如下功能: ; (1)清屏。 ; (2)设置前景色。 ; (3)设置背景色。 ; (4)向上滚动一行; 入口参数说明: ; (1)每个子程序用 ah 寄存器传递功能号: ; (2)对于2、3号功能,用al传送颜色值, assume cs:code,ds:datadata segment err db ' ~~~~~ ah args is error! ~~~~~','$'init dw 10 dup(0)data endscode segmentstart:mov ax,datamov ds,axmov ax,0mov es,axmov ax,es:[7ch*4]mov init[0],axmov ax,es:[7ch*4+2]mov init[1],axmov es:[7ch*4],offset setScreenmov es:[7ch*4+2],csmov ax,102hint 7ch;call breakPointmov ax,201hint 7ch;call breakPointmov ax,300hint 7ch;call breakPointmov ax,0hint 7chmov ax,400hint 7chmov ax,0mov es,axmov ax,datamov ds,axmov ax,init[0]mov es:[7ch*4],axmov ax,init[1]mov es:[7ch*4+2],axok: mov ax,4c00hint 21hsetScreen:jmp short setmainlist dw sub0,sub1,sub2,sub3setmain:cmp ah,3ja subErrmov bl,ahmov bh,0shl bx,1call word ptr list[bx]iretsub0: ;清屏mov cx,0b800hmov es,cxmov cx,2000mov bx,0sub0s:mov byte ptr es:[bx],' 'add bx,2loop sub0sretsub1: ;设置前景色。mov cx,0b800hmov es,cxmov cx,2000mov bx,1sub1s:and byte ptr es:[bx],11111000bor es:[bx],aladd bx,2loop sub1sretsub2: ;设置背景色。mov cx,0b800hmov es,cxmov cx,2000mov bx,1shl al,1shl al,1shl al,1shl al,1sub2s:and byte ptr es:[bx],10001111bor es:[bx],aladd bx,2loop sub2sretsub3: ;向上滚动一行mov cx,0b800hmov es,cxmov ds,cxmov di,0mov si,160climov cx,24sub3s:push cxmov cx,160rep movsbpop cxloop sub3smov cx,160mov bx,0sub3s1:mov byte ptr es:3840[bx],' 'add bx,2loop sub3s1retsubErr: ;显示错误信息mov ax,datamov ds,axmov ah,9mov dx,offset errint 21hjmp okbreakPoint: ;设置断点,用于调试pushfpop bxor bh,3push bxpopfretcode endsend start
汇编题目:编写包含多个功能子程序的中断例程相关推荐
- 实验16 编写包含多个功能子程序的中断例程
本实验是本书的第二个精华的实验.到此可以总结,汇编的重点在于跳转,这里的跳转包括jmp,call(调用),int(中断),这反映到操作系统上就是调用,线程.进程的切换,跳转的本质是任务的切换,CPU的 ...
- 用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】
;问题:用中断例程完成loop指令的功能 ;应用举例:在屏幕中断显示80个'!'? 1.asm ;安装中断例程 assume cs:codecode segment start:mov ax, csm ...
- 题目:编写函数fin,其功能是计算:(ln(1)+ln(2)+1n(3).....+ln(m))平方根值,s作为函数值返回。
/*------------------------------------------------------- 题目:编写函数fin,其功能是计算:(ln(1)+ln(2)+1n(3).....+ ...
- 【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )
一. 中断控制 ( 基于 S3C6410 开发板 ) 1. 关闭中断的两个步骤 (1) 关闭中断步骤 2. CPRS 寄存器中的中断控制位 (1) CPRS 寄存器简介 (2) CPRS 寄存器 中断 ...
- javascript编写_如何在JavaScript中使用解构来编写更简洁,功能更强大的代码
javascript编写 by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? 如何在JavaScript中使用解构来编写更简洁,功能更强大的代码 (How to ...
- Python编程基础 第二章 编程练习 (第2轮开课补充)编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出。如果beg到end之间不存在水仙花数,则输出“not found”。
9 编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出(水仙花数是一个三位整数,其值与各位数字的立方和相等).如果beg到end之间不存在水仙花数,则输出"not found& ...
- JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。
编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...
- spring核心功能包中已经包含了cglib功能
spring核心功能包中已经包含了cglib功能,所以不需要额外再引入cglib jar包 如下图所示: 也要思考一个问题,既然spring核心功能包里已经自带了cglib了,那么如果外部需要用到不同 ...
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
最新文章
- mysql navicat导入bcp_SQL Server中BCP导入导出用法详解
- 托管数据中心vs.云计算:保障关键任务数据安全
- C#对App.config文件或者web.config文件中节点的操作类
- python~爬虫~1
- reactjs回调函数形式的ref:含内联形式回调函数调用次数问题
- Java中的do-while循环——通过示例学习Java编程(11)
- idea首次创建新模块的详细操作
- WPF调用图片路径,或资源图片
- 智能手机市场输家和赢家:Android手机厥后居上
- 1.5.7、CDH 搭建Hadoop在安装之前(定制安装解决方案---配置单用户模式)
- Python网络爬虫实现音乐下载器和图片下载器功能
- 【python小练习】彩票系列-七乐彩
- 使用PS2019制作明信片
- AI视频增强,提高视频画面的清晰度
- Java方法中参数String...你需要知道的事
- NSIS求助!!!,如有大佬知道怎么办,请留言回复!!!感谢!!!
- JZOJ-senior-3502. 【NOIP2013模拟11.4B组】方格游戏
- springboot集成xxl-job
- 启动3ds Max报 d3dx9_43.dll丢失 解决方法
- 4个万兆光口+8个千兆combo光电复用口+16个千兆网口管理型万兆机架式工业级以太网交换机
热门文章
- java整体打印二叉树
- (十一)nodejs循序渐进-高性能游戏服务器框架pomelo之启动流程和组件
- 数学建模 线性规划模型基本原理
- 概率论 条件概率 全概率 贝叶斯公式
- 高速行车12条技巧,每一条都关乎你的生命
- springCloud - 第12篇 - 服务监控 Hystrix 面板
- MySQL通过source命令执行sql文件
- 解决 : Apache Tomcat/8.0.0-RC1 - Error report ... HTTP Status 404
- 程序员如何在大公司做管理
- 网络性能测试工具iperf详细使用图文教程【转载】