安装一个新的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

汇编题目:编写包含多个功能子程序的中断例程相关推荐

  1. 实验16 编写包含多个功能子程序的中断例程

    本实验是本书的第二个精华的实验.到此可以总结,汇编的重点在于跳转,这里的跳转包括jmp,call(调用),int(中断),这反映到操作系统上就是调用,线程.进程的切换,跳转的本质是任务的切换,CPU的 ...

  2. 用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】

    ;问题:用中断例程完成loop指令的功能 ;应用举例:在屏幕中断显示80个'!'? 1.asm ;安装中断例程 assume cs:codecode segment start:mov ax, csm ...

  3. 题目:编写函数fin,其功能是计算:(ln(1)+ln(2)+1n(3).....+ln(m))平方根值,s作为函数值返回。

    /*------------------------------------------------------- 题目:编写函数fin,其功能是计算:(ln(1)+ln(2)+1n(3).....+ ...

  4. 【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )

    一. 中断控制 ( 基于 S3C6410 开发板 ) 1. 关闭中断的两个步骤 (1) 关闭中断步骤 2. CPRS 寄存器中的中断控制位 (1) CPRS 寄存器简介 (2) CPRS 寄存器 中断 ...

  5. javascript编写_如何在JavaScript中使用解构来编写更简洁,功能更强大的代码

    javascript编写 by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? 如何在JavaScript中使用解构来编写更简洁,功能更强大的代码 (How to ...

  6. Python编程基础 第二章 编程练习 (第2轮开课补充)编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出。如果beg到end之间不存在水仙花数,则输出“not found”。

    9 编写程序实现以下功能:计算beg到end之间的所有水仙花数并输出(水仙花数是一个三位整数,其值与各位数字的立方和相等).如果beg到end之间不存在水仙花数,则输出"not found& ...

  7. JAVA 编写程序实现如下功能:一个线程进行如下运算1*2+2*3+3*4+……+19*20,而另一个线程则每隔一段时间读取前一个线程的运算结果。

    编写程序实现如下功能:一个线程进行如下运算12+23+34+--+1920,而另一个线程则每隔一段时间读取前一个线程的运算结果. class Count{private int sum;Count(i ...

  8. spring核心功能包中已经包含了cglib功能

    spring核心功能包中已经包含了cglib功能,所以不需要额外再引入cglib jar包 如下图所示: 也要思考一个问题,既然spring核心功能包里已经自带了cglib了,那么如果外部需要用到不同 ...

  9. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

最新文章

  1. mysql navicat导入bcp_SQL Server中BCP导入导出用法详解
  2. 托管数据中心vs.云计算:保障关键任务数据安全
  3. C#对App.config文件或者web.config文件中节点的操作类
  4. python~爬虫~1
  5. reactjs回调函数形式的ref:含内联形式回调函数调用次数问题
  6. Java中的do-while循环——通过示例学习Java编程(11)
  7. idea首次创建新模块的详细操作
  8. WPF调用图片路径,或资源图片
  9. 智能手机市场输家和赢家:Android手机厥后居上
  10. 1.5.7、CDH 搭建Hadoop在安装之前(定制安装解决方案---配置单用户模式)
  11. Python网络爬虫实现音乐下载器和图片下载器功能
  12. 【python小练习】彩票系列-七乐彩
  13. 使用PS2019制作明信片
  14. AI视频增强,提高视频画面的清晰度
  15. Java方法中参数String...你需要知道的事
  16. NSIS求助!!!,如有大佬知道怎么办,请留言回复!!!感谢!!!
  17. JZOJ-senior-3502. 【NOIP2013模拟11.4B组】方格游戏
  18. springboot集成xxl-job
  19. 启动3ds Max报 d3dx9_43.dll丢失 解决方法
  20. 4个万兆光口+8个千兆combo光电复用口+16个千兆网口管理型万兆机架式工业级以太网交换机

热门文章

  1. java整体打印二叉树
  2. (十一)nodejs循序渐进-高性能游戏服务器框架pomelo之启动流程和组件
  3. 数学建模 线性规划模型基本原理
  4. 概率论 条件概率 全概率 贝叶斯公式
  5. 高速行车12条技巧,每一条都关乎你的生命
  6. springCloud - 第12篇 - 服务监控 Hystrix 面板
  7. MySQL通过source命令执行sql文件
  8. 解决 : Apache Tomcat/8.0.0-RC1 - Error report ... HTTP Status 404
  9. 程序员如何在大公司做管理
  10. 网络性能测试工具iperf详细使用图文教程【转载】