汇编语言(三十一)之数字字符串加密与解密

输入一串数字,然后进行加密解密输出

程序运行:

 

代码:


datas segmentline_max_len        db 0ffh line                db 0, 100h dup(?)linesecret          db 0, 100h dup(?)linedesecret        db 0, 100h dup(?)secret              db '7','5','9','1','3','6','8','0','2','4'desecret            db '7','3','8','4','9','1','5','0','6','2'input               db 'input a line number:$'outputsecret        db 0dh,0ah,'secret:$'outputdesecret      db 0dh,0ah,'desecret:$'outputnosize        db 0dh,0ah,'size is 0$'outputerr           db 0dh,0ah,'input error$'datas endsstacks segment stackdb  100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks
main   proc  far
start:push dsmov ax,0hpush axmov ax,datas          ;初始化dsmov ds,ax;输出输入提示lea dx,inputmov ah,9int 21h ;输入一串字符lea dx,line_max_lenmov ah,10 int 21h;判断字符串长度是否为0cmp line,0 jz nosize;输出加密的提示lea dx,outputsecretmov ah,9int 21h ;加密mov cl,linexor ch,chlea bx,secret             ;获取加密的地址表mov si,0s:mov al,line+1[si]  cmp al,'0'                ;判断要加密的字符是否合法jb errcmp al,'9'ja errsub al,30h                ;加密xlatmov linesecret[si],al     ;保存加密的字符inc si loop smov linesecret[si],'$'    ;设置字符串结束标志lea dx,linesecret         ;输出加密的字符串call OUTPUT;输出解密提示lea dx,outputdesecretmov ah,9int 21h ;解密mov cl,linexor ch,chlea bx,desecret            ;获取解密的地址表mov si,0s1:mov al,linesecret[si]  cmp al,'0'                 ;判断要解密的字符是否合法jb errcmp al,'9'ja errsub al,30h                  ;解密xlatmov linedesecret[si],al     ;保存解密的字符inc si loop s1mov linedesecret[si],'$'    ;设置输出字符串结束标志,并且输出解密字符串lea dx,linedesecretcall OUTPUTjmp exit                     ;跳至退出nosize:lea dx,outputnosize          ;没有输入提示mov ah,9int 21h jmp exiterr:lea dx,outputerr             ;输入错误提示mov ah,9int 21h exit:retmain endpOUTPUT proc near  uses ax dx mov ah,9int 21h ret
OUTPUT endp 
codes endsend main

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core 运行原理解剖[1]:Hosting

SP.NET Core 是新一代的 ASP.NET,第一次出现时代号为 ASP.NET vNext,后来命名为ASP.NET 5,随着它的完善与成熟,最终命名为 ASP.NET Core,表明它不是 ASP.NET 的升级,而是一个重新设计的Web开发框架。而它一…

公众号文章

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 常用的几个sql整理 1.按照日期统计今天的客流信息。 SELECT * FROM base_disanfang WHERE DATE_FORMAT(create_time,%Y-%m-%d) DATE_FORMAT(NOW(),%Y-%m-%d) 其中base_disanfang为表名…

POJ2259,luoguUVA540-Team Queue【队列】

正题 POJ题目链接:http://poj.org/problem?id2259 luogu评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidUVA540 题目大意 有n个队伍排队,新进来一个人时那个人会排在他的队伍的最后一个人的后面,如果这里没…

2017(深圳) .NET技术分享交流会 第二期,将有网络直播

2017 .NET技术分享交流会第一期已在5月13日成功举办,但是有同学反馈哪个地方有点偏,又过去了3个月,这期间一直没找到合适的地方举办活动,一直在南山科技园寻找经济适合的场地,终于找到一个安静,风景好的深圳…

汇编语言(三十二)之读写文件

读取文件的内容写到另一个文件 程序运行: 暂无 代码: datas segmentfile1 db d:\abc.txt,00 handle1 dw 0file2 db d:\def.txt,00 handle2 dw 0line_max_len db 0ffhline db 0, 100h dup(?)buffer db 0input …

整理几个常用的sql和其他代码

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”常用的几个sql整理1.按照日期统计今天的客流信息。SELECT * FROM base_disanfang WHERE DATE_FORMAT(create_time,%Y-%m-%d) DATE_FORMAT(NOW(),%Y-%m-%d)其中base_disanfang为表名&…

汇编语言(三十三)之四进制转十进制

输入四进制的数,转为十进制输出 程序运行: 代码: datas segmentN_string_max_length db 0ffhN_string db 0, 100h dup(?)N dw 0,0 sum dd 0 input db inp…

tyvj/joyOI 1305-最大子序和【单调队列】

正题 题目链接:http://www.joyoi.cn/problem/tyvj-1305 题目大意 求一段长度不超过m的最大子序和。 解题思路 用前缀和,我们可以枚举最右边的点,然后取左边合法范围内最小的前缀和,这个我们可以用单调队列进行优化。 code #in…

HTML中常用知识点整理

html复习HTML是一个超文本标记语言w3c标准&#xff1a;结构标准&#xff0c;表现标准&#xff0c;行为标准。基本结构<!doctype html> <html><head><title>网页的标题</title><meta charset"utf-8"/></head><body>&…

Orleans解决并发之痛(二):Grain状态

Grains是Orleans应用程序的构建块&#xff0c;它们是彼此孤立的原子单位&#xff0c;分布的&#xff0c;持久的&#xff0c; 一个典型的Grain是有状态和行为的一个单实例&#xff0c;每个Grain实例的在单线程内执行&#xff0c;Grain之间共享数据通过消息传递&#xff0c;Grain…

汇编语言(三十四)之输出中文

输出中文 程序运行&#xff1a; 代码&#xff1a; daones segmentfull_name db 0,1,2,3,4,5 full_name_length dw $-full_name start_char db 0 change_char_count dw 6color db 1 x dw 40 y …

vue使用element ui实现下拉列表分页的功能!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”前几天做了个功能&#xff0c;需求是使用利用element ui如何给下拉列表分页&#xff0c;经过网上查找&#xff0c;自己摸索&#xff0c;已经完成&#xff0c;今天来记录一下吧。实现的…

POJ2373-Dividing the Path【单调队列优化dp】

正题 题目链接:http://poj.org/problem?id2373 题目大意 长度为L&#xff0c;要求每个区域都被洒水器覆盖&#xff0c;而且在每只奶牛的喜爱区域只能由一个洒水器覆盖&#xff0c;洒水器必须放在整数点&#xff0c;喷洒半径只能在a∼ba\sim ba∼b区间。 解题思路 我们考虑d…

ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍

在上一章ASP.NET Core 运行原理解剖[1]:Hosting中&#xff0c;我们介绍了 ASP.NET Core 的启动过程&#xff0c;主要是对 WebHost 源码的探索。而本文则是对上文的一个补充&#xff0c;更加偏向于实战&#xff0c;详细的介绍一下我们在实际开发中需要对 Hosting 做一些配置时经…

汇编语言(三十五)之输入字符串以$结束然后输出字母个数

输入字符串以$结束然后输出字母个数 程序运行&#xff1a; 代码&#xff1a; datas segment buff db 100h dup(?)letter_count dw 0nextline db 0dh,0ah,$datas ends codes segment assume cs:codes,ds:datas main proc far push dsmov ax,0push ax mov ax,datasmov ds,ax…

vue中如何使用vi-for限制遍历的条数?只查询前三条、查询4-6条怎么实现?

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”前言今天整理个简单的功能&#xff0c;vue中的v-for如何限制遍历输出的数据&#xff0c;比如我想在一个存放10条数据的集合中只输出3条怎么写&#xff1f;只想从第四条开始输出到第10条…

P3370-[模板]字符串哈希【hash】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP3370 大意 输出若干个字符串&#xff0c;求输入的字符串的总个数。 解题思路 就是用hash表就好了。 code #include<cstdio> #include<iostream> #include<string> #define p 300…

编译原理(一)之词法分析

词法分析 (1)参考附录1设计一个简单语言的词法分析程序&#xff0c;要求能够处理注释、换行回车、部分复合运算符&#xff08;如>&#xff09;。 (2)设计并实现含多条简单赋值语句的语法分析程序&#xff0c;要求有一定的出错提示与错误恢复功能。 (参考附录2) 附录1:…

粗略使用.NetCore2.0自带授权登陆Authorize

上篇Linux.NetCoreNginx搭建集群 有朋友提及到如果nginx做集群后应该还会有下一篇文章主讲session控制&#xff0c;一般来说就是登陆&#xff1b;本篇分享的内容不是关于分布式session内容&#xff0c;而是netcore自带的授权Authorize&#xff0c;Authorize粗略的用法&#xff…

vue中如何在地图中标点…

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”前言昨天分享了下vue中v-for的一些特殊用法&#xff0c;料想标题给写成了vi-for…太粗心了。文章连接在这里&#xff1a;vue中如何使用v-for限制遍历的条数&#xff1f;只查询前三条、…