高分求一个高手做一简单的汇编程序

来源:百度知道 编辑:UC知道 时间:2024/04/27 13:47:10
开发一个软中断处理程序,将输入的数字密码置换加密后从显示屏幕上输出(当输入回车键后,认为输入的数字密码结束)。要求利用空闲中断号65H实现软中断设置,密码不超过20位,以$符结尾。采用以下密码表:
原数字:0、1、2、3、4、5、6、7、8、9
密码字:7、8、4、6、3、0、2、9、5、1
要求1:从键盘输入一个字符采用DOS调用,1号功能
要求2:显示字符串采用DOS调用,9号功能
例: 输入的明码861903
显示的密码528176

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -----------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)

; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -----------------------------------------
Encode db '7846302951'
Prompt_Str1 db 'Please input the orical code: $'
Prompt_Str2 db 7,13,10,13,10,'The encode: $'
Prompt_Str3 db 13,10,13,10,'Please record the encode and than press any key to continue...$'
String db 20,?,20 dup(?) ;明码输入缓冲区
; 功能:把用户输入的最多20个数字的明码按位加密后,显示密码
; 入口参数:无
; 出口:显示加密后的密码
New_Int65H Proc Far
cli
push es
push ds
push si
push di
push dx
push cx
push bx
push ax
push cs