9. (***)在内存中定义一个用于加密的key和明文字符串,用这个key的每个字符依次和明文字符串的对应字符进行异或操作得到密文字符串,并将密文字符串保存在另一个变量中。例如:key为“ABXmv#7”
明文字符串 T h i s a p l a i n t e x t
Key A B X m v # 7 A B X m v # 7 A B X
新题确实要简单一点,这道题的思路就是从BUF1读到AH,BUF2读到AL,XOR然后再送到BUF3。。。
注意循环的结束标志和重复标志。
DATAS SEGMENT
BUF1 DB'ABCDEFGHIJ'
COUNT1 EQU $-BUF1
BUF2 DB 'ABXmv#7'
COUNT2 EQU $-BUF2
BUF3 DB 100 DUP(?);此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
MOV SI,0
MOV DI,0
CHULI:
MOV AH,BUF1[SI]
MOV AL,BUF2[DI]
XOR AH,AL
MOV BUF3[SI],AH
INC SI
CMP SI,COUNT1
JE END0
INC DI
CMP DI,COUNT2
JE HUI
JMP CHULI
HUI:
MOV DI,0
JMP CHULI
;此处输入代码段代码
END0:
MOV AH,4CH
INT 21H
CODES ENDS
END START
网友评论