汇编语言实验——加密程序

编写加密程序

编写一个加密程序,实现将数据段中YW开始的6个字节原文加密存入MW开始的6个字节中
设’0123456789’对应的密码为"9082746315"。
如原文YW为‘449255’,则加密后MW中为’775844’.

;实现将数据段中YW开始的6个字节原文加密存入MW开始的6个字节中,
;'0123456789'对应的密码为"9082746315";如原文YW为‘449255’,则加密后MW中为'775844'
ASSUME CS:CODE,DS:DATA,SS:STACK

DATA SEGMENT
		YW 		DB 6 DUP(0)						;要输入的6位待加密数字
		MW 		DB 6 DUP(0)						;输出的加密后文件
		;SORCE 	DB 0,1,2,3,4,5,6,7,8,9		;加密源文件样例
		KEY 	DB 10 DUP(0)					;对应加密规则
		KEY_RULE DB 'Please input the key rule:',0DH,0AH,'$'
		TEXT 	DB 'Please input the text:',0DH,0AH,'$'
		KEY_TEXT DB 'The text is:',0DH,0AH,'$'
		
DATA ENDS

STACK SEGMENT
		DB 128 DUP(0)
STACK ENDS

CODE SEGMENT
START:
		MOV AX,DATA
		MOV DS,AX
		MOV AX,STACK
		MOV SS,AX
		MOV SP,128
;------提示输入加密规则------
		LEA DX,KEY_RULE			
		MOV AH,9
		INT 21H
		
;-------输入加密规则-------		
		MOV CX,10
		MOV SI,0
IN_KEYRULE:						;循环输入对应的加密规则
		MOV AH,1
		INT 21H
		MOV KEY[SI],AL
		INC SI
		LOOP IN_KEYRULE
		
;-------换行--------		
		MOV DL,0AH
		MOV AH,2
		INT 21H

;------打印输入要加密的text-----
		LEA DX,TEXT
		MOV AH,9
		INT 21H
;-------输入加密文件-------
		MOV CX,6
		MOV DI,0
IN_TEXT:
		MOV AH,1
		INT 21H
		MOV YW[DI],AL
		INC DI
		LOOP IN_TEXT
;-------换行--------
		MOV DL,0AH
		MOV AH,2
		INT 21H		
;-------输出加密后文件-----		
		LEA DX,KEY_TEXT
		MOV AH,9
		INT 21H
		
		MOV AX,0
		MOV SI,0
		MOV DI,0
		MOV CX,6
OUT_TEXT:
		SUB YW[DI],30H
		MOV AL,YW[DI]
		MOV SI,AX
		MOV BL,KEY[SI]
        MOV MW[DI],BL
		INC DI
		LOOP OUT_TEXT
		
		MOV CX,6
		MOV DI,0
PRINT:
		MOV DL,MW[DI]
		MOV AH,02H
		INT 21H
		INC DI
		LOOP PRINT

EXIT:
		MOV AX,4C00H
		INT 21H
		
CODE ENDS
END START
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值