查找下面程序中调用的BIOS中断和DOS中断_GJG666的博客-程序员秘密

技术标签: 汇编语言  中断  

打开 “BIOS、DOS中断大全”
阅读下面的程序,找出其中调用的BIOS中断和DOS中断;
对照“大全”,查找对应中断各功能的入口参数、出口参数的说明,

assume cs:code, ss:stack
stack segment
     db 100H dup (?)
stack ends
code  segment
      org 100h
start:
      jmp beg
menu  db 10,13,10,13,'           MENU          '  ; 1013分别是回车换行符的ASCII值
      db 10,13
      db 10,13,'           1. FILE'
      db 10,13,'           2. EDIT'
      db 10,13,'           3. COMPILE'
      db 10,13,'           4. RUN'
      db 10,13,'           0. QUIT'
      db 10,13
      db 10,13,'   please choose one of 0~4:','$'
codetab dw sub1, sub2, sub3, sub4

beg:
      push cs
      pop ds     ;设置数据段
disp0:
      lea dx,menu ;
      mov ah,9
      int 21h     
;【功能描述:输出一个字符串到标准输出设备上。
;入口参数:AH=09H
;DS:DX=待输出字符的地址
;说明:待显示的字符串以’$’作为其结束标志
;出口参数:无】
      mov ah,0
      int 16h
;【功能描述:从键盘读入字符
;入口参数:AH=00H——读键盘
;出口参数:AH=键盘的扫描码
;AL=字符的ASCII 码】

      sub al, 30h  ;ASCII变数字
      cmp al, 0
      je exit

      mov bl, al
      mov bh, 0
      add bx, bx
      sub bx, 2
      call word ptr codetab[bx]
      jmp disp0

exit:
      mov ah,4ch
      int 21h

sub1  proc near
      jmp sub1_disp
      file db 10,13,'   --new, open, save, print files.---',10,13,'$'
sub1_disp:
      lea dx,file
      mov ah,9
      int 21h     
      ret
sub1  endp

sub2  proc near
      jmp sub2_disp
      edit db 10,13,'   --copy, cut, paste the text.---',10,13,'$'
sub2_disp:
      lea dx,edit
      mov ah,9
      int 21h    
      ret
sub2  endp

sub3  proc near
      jmp sub3_disp
      compile db 10,13,'   --compile the source file, then get target file.---',10,13,'$'
sub3_disp:
      lea dx,compile
      mov ah,9
      int 21h   
      ret
sub3  endp

sub4  proc near
      jmp sub4_disp
      run db 10,13,'   --run, run, run, cannot stop.---',10,13,'$'
sub4_disp:
      lea dx,run
      mov ah,9
      int 21h   
      ret
sub4  endp
code  ends
      end start
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gjg666/article/details/81254640

智能推荐

查看oracle死锁进程并结束死锁_风神修罗使的博客-程序员秘密

–查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from vlockedobjectlo,dbaobjectsao,vlockedobjectlo,dbaobjectsao,vlocked_object lo, db...

附加数据库错误 5102_weixin_30325793的博客-程序员秘密

附加数据库错误 5102 从其他机子拷贝过来mdf文件附加到本机的sql server 里面,附加的时候提示错误,无法打开文件,错误5102,原因是权限不够,选择要附加的数据库文件,右击属性--安全--编辑 ,给认证用户赋予完全控制的权限 就可以了。 ...

hibernate的关联关系(多对多),Vue菜单能用自关联_不怕报错 就怕不报错的小猿猿的博客-程序员秘密

转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165.本文出自 不怕报错 就怕不报错的小猿猿 的博客hibernate的关联关系(多对多)前言1.数据库的多对多1.1 数据库中不能直接映射多对多2.hibernate的多对多3.多对多关系注意事项3.1 一定要定义一个主控方3.2 多对多删除3.3 关联关系编辑,不需要直接操作桥接表,hibernate的主控方会自动维护4.案例4.1 自关联查询(菜单表)4.2 多对多级.

centOS7上scala的下载及安装_shoust的博客-程序员秘密

1.下载现在过程和jdk下载相似不在赘述,参考添加链接描述,这里直接写命令#wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz#tar -zxvf scala-2.11.8.tgz2.配置环境变量#vi /etc/profile#export SCALA_HOME=/usr/local/scala/sca...

Python入门:Python 2与Python3有什么区别?_weixin_34050427的博客-程序员秘密

今天来说说Python版本上的差异。目前,Python的版本主要包括两种,Python 2与Python 3系列。先介绍一下它们的背景,帮助大家更好的理解。Python 是一种极具可读性和通用性的编程语言。它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈。Python 2Python 2 发布于 2000 年年底...

【华为_数通】VLAN的3种端口类型、实验配置_干道端口设置代码_苗杨的博客-程序员秘密

VLAN的3种端口类型、实验配置理论VLAN概述VLAN优点VLAN标签PVID接口类型Access-接入端口Trunk-干道端口Hybrid-混杂端口3种类型总结实践Access实验拓扑命令结果验证Trunk、Hybrid实验拓扑命令结果验证理论前言: 此笔记基于谢斌老师的数通课程。VLAN概述Virtual LAN 虚拟局域网将一个物理局域网在逻辑上划分成多个广播域1 VLAN = 1 广播域 = 1 子网 (划分最好一个子网一个VLAN)广播不会在不同VLAN间转发,而是限制在各自

随便推点

listView下拉刷新加载数据_weixin_30765505的博客-程序员秘密

这个下拉效果在网上最早的例子恐怕就是Johan Nilsson的实现,http://johannilsson.com/2011/03/13/android-pull-to-refresh-update.html。如果这篇文章对您有用,劳烦几秒钟帮忙投下票:http://vote.blog.csdn.net/item/blogstar/aomandeshangxiao,C...

让win7笔记本变成热点_weixin_34221276的博客-程序员秘密

将 win7 电脑变身 WiFi 热点,让手机、笔记本共享上网zyphio 摘录整理,原版图,对内容略做修改,增加两项新手常遇到的问题解决方法(红字部分),同时感谢原作者(没去考究是谁,抱歉)。用 win7 建立无线局域网,可以共享上网可以局域网游戏。开启 windows 7 的隐藏功能:虚拟 WiFi 和 SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现...

USB连接_lz强的博客-程序员秘密

USB连接USB相关的主要类:frameworks\base\services\usb\java\com\android\server\usb\UsbService.javaframeworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java注册USB设备监听在UsbService启动流程中,已经讲到在Life...

leetcode:Restore IP Addresses (修复ip地址) 【面试算法题】_Havenoidea的博客-程序员秘密

题目:Given a string containing only digits, restore it by returning all possible valid IP address combinations.For example:Given "25525511135",return ["255.255.11.135", "255.255.111.35"]

laravel5.8 反序列化漏洞复现_bfengj的博客-程序员秘密

前言上一篇文章复现了一下laravel5.7的反序列化,这篇复现一下5.8的反序列化。还是github上下载源码:laravel5.8往composer.json的require里面加上"symfony/symfony": “4.*”,然后composer update。如果提示 Allowed memory size of bytes exhausted,参考这篇文章:运行 composer update,提示 Allowed memory size of bytes exhausted然后还

前端_引入背景图,nowarp_AmazingZ-sys的博客-程序员秘密

移动端布局步骤:视口:视觉视口布局视口理想视口rem布局实现适配​ root em-----rem html字体的倍率​ em 当前字体的倍率修改视口<meta name="viewport" content="width=device-width">引入rem.js<script src=""></scri...

推荐文章

热门文章

相关标签