美文网首页
汇编语言上机考试三星题10(二刷)

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

作者: 魔一方 | 来源:发表于2018-11-14 16:53 被阅读0次

46. (***)在内存中定义一个用于加密的key和明文字符串,key中的每个数字表示将明文字符串中的对应字符进行旋转移位的次数,负数表示左移位,正数表示右移位。加密key的长度为10个字节:-2, 4, 1, 0, -3, 5, 2, -4, -4, 6。先用加密key处理字符串的前10个字节,再处理接下来的10个字节,以此类推。将密文字符串保存在另一个变量中。

小于的话就NEG 然后ROL

大于等于就ROR

没啥说的,别的和上一道题差不多

DATAS SEGMENT

    BUF1 DB'ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ'

    COUNT1 EQU $-BUF1

    BUF2 DB -2,4, 1, 0, -3, 5, 2, -4, -4, 6

    COUNT2 EQU 10

    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]

CMP AL,0

JL ZUO

JGE YOU

ZUO:

NEG AL

MOV CL,AL

ROL AH,CL

MOV BUF3[SI],AH

JMP NEXT

YOU:

MOV CL,AL

ROR AH,CL

MOV BUF3[SI],AH

JMP NEXT

NEXT:

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

相关文章

网友评论

      本文标题:汇编语言上机考试三星题10(二刷)

      本文链接:https://www.haomeiwen.com/subject/ydbjfqtx.html