美文网首页
汇编语言上机考试三星题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