关闭

软中断开发实例6-13

961人阅读 评论(0) 收藏 举报

;---------------------软中断处理程序---------------------
.model small
cr equ 0dh   ;定义回车键
.data
 mimatab db '7846302951' ;预定义置换密码表
 keybuff db 21 dup('$') ;预留20位密码缓冲区
.code
 public int65h
 int65h proc far  ;保护现场
  push ax
  push bx
  push cx
  push si
  lea bx, mimatab
  lea si, keybuff
  mov cx, 20
 next:
  mov ah, 1
  int 21h  ;输入一个字符
  cmp al, cr  ;检测是否是一个回车符
  jz exit  ;是则跳转
  and al, 0fh  ;不是则将数字字符转换为相应的数字
  xlat mimatab  ;明码转换为密码
  mov [si], al ;保存一位密码
  inc si
  loop next  ;不满20位则转下一位密码输入
 exit:
  pop si
  pop cx
  pop bx
  pop ax
  iret
 int65h endp   ;中断返回

;---------------------主程序------------------------------
;extrn int65h: far
;.model small
.stack 64
.code
.startup
 mov ax, seg int65h  ;取中断处理程序的段地址
 mov ds, ax
 mov dx, offset int65h ;取中断处理程序的偏移地址
 mov ah, 25h   
 mov al, 65h   
 int 21h   ;填写软中断号65h的中断向量
 int 65h   ;调用65h软中断
.exit 0
end 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:53921次
    • 积分:718
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:12篇
    • 译文:0篇
    • 评论:19条
    文章分类
    最新评论