汇编语言编程:按照凯撒密码的规则加密

您所在的位置:网站首页 凯撒用英语怎么写 汇编语言编程:按照凯撒密码的规则加密

汇编语言编程:按照凯撒密码的规则加密

2024-07-14 22:51| 来源: 网络整理| 查看: 265

;要求:提示输入一字符串;键盘输入,Enter键结束输入;加密后换行显示加密结果。;;凯撒编码规律:;字母A 变为E,a 变为e,即变成其后的第 4 个字母(题目是这样要求的,也可改成别的数字);;字母W 变为A,Y 变为C,Z变为D,非字母不变。;如输入“China”变为“Glmre”。 ;;这是在网上看到的一个题目,已经有了最佳答案。;做而论道以为该答案的结构过于罗嗦了,功能还不尽全面,并且缺少注解,提问者并不理解。;网址:http://zhidao.baidu.com/question/279941785.html;;做而论道以前用C语言写过一个关于凯撒密码的程序,可见:

http://hi.baidu.com/do_sermon/item/78589d7e9d00f9397044232a

http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/b62441fa541839294f4aea9f.html;;用汇编来写,也是轻车熟路。但愿没有BUG,欢迎拍砖。;;用80x86汇编语言编程如下:;---------------------------------------------------DATA SEGMENT

    PARS  DB 100             ;准备接收100个字符.    NNN   DB ?               ;用于存放实际输入的个数.    III   DB 100 DUP(?)      ;100字节的空间.    K_S   DB 100 DUP('$')    ;100字节的空间.

   MES_I  DB  13, 10, 'Input  STR : $   ' ;用于提示.   MES_O  DB  13, 10, 'Output STR : $   ' ;用于提示.

DATA ENDS;---------------------------------------------------CODE SEGMENT    ASSUME  CS:CODE, DS:DATASTART:    MOV  AX, DATA    MOV  DS, AX

    MOV  DX, OFFSET MES_I    MOV  AH, 9               ;9号功能调用,显示提示.    INT  21H    MOV  DX, OFFSET PARS    MOV  AH, 10              ;10号功能调用,接收键盘输入.    INT  21H;---------------------------------------------------    MOV  CL, NNN             ;收到字符的个数.    MOV  CH, 0    CMP  CX, 0    JNZ  DO_IT    JMP  EXITDO_IT:    LEA  SI, III             ;键入字符的起始地址.    LEA  DI, K_S             ;加密字符的起始地址.;----------------------------下面开始循环统计.AGAIN:    MOV  AL, [SI]            ;取来一个    CMP  AL, 'A'    JC   NEXT                ;小于'A'不用处理,转移到下一个

    CMP  AL, '{'             ;- '{'    JNC  NEXT                ;大于'z'不用处理,转移到下一个

    CMP  AL, 'a'    JC   BIG                 ;小于'a'可能是大写,转移SMALL:    ADD  AL, 4               ;加密    CMP  AL, '{'    JNC  J_26                ;大于'z',超过了最后的字母,应减去26    JMP  NEXT

BIG:    CMP  AL, '['             ;- '['    JNC  NEXT                ;大于'Z'不用处理,转移到下一个

    ADD  AL, 4    CMP  AL, '['    JNC  J_26                ;大于'Z',超过了最后的字母,应减去26    JMP  NEXT

J_26:    SUB  AL, 26

NEXT:    MOV  [DI], AL            ;保存密码    INC  SI    INC  DI    LOOP AGAIN;----------------------------加密结束    MOV  DX, OFFSET MES_O     MOV  AH, 9               ;9号功能调用,显示提示.    INT  21H    MOV  DX, OFFSET K_S     MOV  AH, 9               ;9号功能调用,显示密码.    INT  21H;----------------------------显示结束.EXIT:    MOV  AH, 4CH    INT  21H

CODE  ENDS    END  START

;注意:输入字符串的时候,不要输入'$',否则用“9号功能调用”进行显示的时候,它仅显示'$'前面的符号。;这都是微软闹的,它们编写的系统功能调用程序,看见了钱(美元符$),就自己保留了,不输出了。

;不知那位网友来编写个解密的?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3