目录 上一页 下一页 下一章

第3章 中断调用与子程序 -31-

数据放入AL中,所以如果在调用此功能前AL中存在有用的数据,那么就需要事先保存AL寄存器的内容。请看下面的程序PROG-3。
PROG-3
-a100[Enter]
09FE:0100 jmp 112
09FE:0102 [Enter]
-e102[Enter]
;跳过字符串数据区
;在此处直接打回车
;用E命令将字符串的ASCII码置入内存
09FE:0102 FC.50 80.72 74.65 63.73 BA.73 A6.20
09FE:0108 82.61 04.6e 08.79 83.20 74.6b 5B.65 BA.79 B2.2e
09FE:0110 08.2e 84.2e 74.[Enter]
-a112[Enter]
09FE:0112 mov bx,102
09FE:0115 mov cx,10
09FE:0118 mov dl,[bx]
09FE:011A mov ah,02
09FE:011C int 21
09FE:011E inc bx
09FE:011F loop 118
09FE:0121 mov ah,01
09FE:0123 int 21
09FE:0125 mov bl,al
09FE:0127 mov dl,0d
09FE:0129 mov ah,02
09FE:012B int 21
09FE:012D mov dl,0a
09FE:012F int 21
09FE:0131 mov dl,bl
09FE:0133 int 21
09FE:0135 int 20
09FE:0137 [Enter]
;BX寄存器中置入字符串数据区首址
;需要处理的字符个数置入CX寄存器
;取得一个字符的ASCII码到DL寄存器
;选择DOS API的02H功能
;调用21H中断显示DL中的字符
;BX寄存器加1指向下一个字符
;返回0118H处继续处理BX所指向的新字符
;选择DOS API的01H功能
;调用21H中断等待键盘输入
;保存键盘输入字符的ASCII码
;DL寄存器置入回车符的ASCII码0DH
;选择DOS API的02H功能
;调用21H中断显示回车符
;DL寄存器置入换行符的ASCII码0AH
;调用21H中断显示换行符
;DL寄存器置入刚刚输入的字符
;调用21H中断显示刚刚输入的字符
;调用20H中断结束程序,返回DOS

  程序例PROG-3给出了这两个功能调用的应用实例。注意每行指令的后面都有一个带“;”的说明性文字,这些文字的作用是使程序比较易懂,大家在上机输入程序时不能输入这些文字。
  程序中出现了一条新的指令──INC:
助记符:INC(Increase)
用 途:将寄存器或存储器中的数据加1
格 式:INC 寄存器
    INC 存储单元
执 行:相应寄存器或存储器中的数据加了1
  此指令的功能和前面所讨论的DEC正相反,需要对照记忆。

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章