(***)在內(nèi)存中定義一個用于加密的key和明文字符串,用這個key的每個字符依次和明文字符串的對應字符進行異或操作得到密文字符串阅畴,并將密文字符串保存在另一個變量中倡怎。例如:key為“ABXmv#7”
明文字符串This?a?plain?text
KeyABXmv#7ABXmv#7ABX
DATAS SEGMENT
? ? BUF1 DB 'ABCDEFGHIJABCDEFGHIJ'
? ? COUNT1 EQU $-BUF1
? ? BUF2 DB '12345'
? ? 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
MOV BH,COUNT1
MOV BL,COUNT2
L:
MOV AH,BUF1[SI]
MOV AL,BUF2[DI]
XOR AH,AL
MOV BUF3[SI],AH
JMP NEXT
NEXT:
DEC BL
DEC BH
CMP BH,0
JE END0
INC SI
CMP BL,0
JE L2
INC DI
JMP L
L2:
MOV DI,0
MOV BL,COUNT2
JMP L
END0:
? ? ;此處輸入代碼段代碼
? ? MOV AH,4CH
? ? INT 21H
CODES ENDS
? ? END START