汇编语言上机考试三星题9(二刷)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容