查找下面程序中调用的BIOS中断和DOS中断

打开 “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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值