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

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

程序运行:

 

代码:


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为表名…

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

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

整理几个常用的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…

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

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

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

输出中文 程序运行: 代码: 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实现下拉列表分页的功能!!!

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

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

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

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

输入字符串以$结束然后输出字母个数 程序运行: 代码: 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条怎么实现?

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

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

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

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

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

vue中如何在地图中标点…

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

被黑客盯上了…数据都给打包带走了…

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”前言在创建数据库的时候,突然之间,发现创建的表通过select * from 表名 查询不到了,于是就开始检查是不是sql语句写错了,检查半天&#…

编译原理(二)之语法分析

采用实验1的简单语言,设计并实现含多条简单赋值语句的语法分析程序,要求采用算符优先的分析算法。 注意与实验1、2的衔接。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using Syste…

ASP.Net Core Razor 页面路由

在服务器端 Web 应用程序框架中,其中非常重要的设计是开发人员如何将URL与服务器上的资源进行匹配,以便正确的处理请求。最简单的方法是将 URL 映射到磁盘上的物理文件,在 Razor 页面框架中,ASP.NET团队就是这样实现的。 关于 Ra…

vue实现下拉列表远程搜索示例(根据关键词模糊搜索)

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂”前言昨天的链接没有放上去……大家访问新站的时候,可以在浏览器地址栏中输入:www.穆雄雄.com或者www.muxiongxiong.cn都可以。今天分享的效果如下:ima…

编译原理(三)之语义分析

采用实验1的简单语言,设计并实现含多条简单赋值语句的语法语义分析程序,要求采用递归下降翻译法。 注意与实验1、2的衔接。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.T…

活动: 北京Xamarin分享会第6期(2017年9月9日)

每月第二个周六,北京丹棱街5号微软大厦,有什么活动?对, BXUG线下分享活动又来啦! 本次分享嘉宾阵容庞大,在金秋凉爽的季节,期待与大家面对面的交流。内容预告: 案例分享:某大型国企IT项目如何采…