汇编语言(九)之十六进制数值转二进制

输入四位十六进制的数值,将十六进制数值转二进制输出

程序运行:

 

代码:


datas segmentmaxLength                 db 5hexLength                 db 0hex                       db 5 dup(?)bin	                   db 100h dup(?)inputPrompt               db 'input 4 bit hexadecimal:$'outputBinary              db 0dh,0ah,'output binary:$'outputInputError          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,axlea dx,inputPrompt      ;输入提示mov ah,9int 21hlea dx,maxLength        ;输入十六进制字符mov ah,10int 21hmov cl,hexLength        ;若字符串长度不为4,则输入错误cmp cl,4jne inputErrormov ch,0                ;设置ch,使得cx为字符串的长度lea si,hex              lea di,bins:mov al,[si]           cmp al,'9'            ;判断字符是否大于'9'ja english            ;大于9则跳转去判断是否为其他十六进制字符cmp al,'0'            ;判断字符是否大于'0' jb inputError         ;若小于'0',则输出jmp tobinary          ;否则,则转换为二进制english:or al,32             ;将字符变成小写字母,不是小写字母的运算结果不变cmp al,'a'            ;判断字符是否大于'a'jb inputError         ;若小于'a',则输入错误cmp al,'f'            ;判断字符是否大于'f'ja inputError         ;若大于'f',则输入错误 sub al,7             ;先减7,变成数字的值+30htobinary:sub al,30h            ;减去30h,剩下数值call binary           ;转换二进制,使用al,diinc si                ;数组下标加一loop slea dx,outputBinary       ;输出二进制提示mov ah,9int 21hmov byte ptr [di],'$'     ;设置二进制字符串的结束字符lea dx,bin                 ;输出二进制字符串mov ah,9int 21hjmp exitinputError:                   ;输入错误提示lea dx,outputInputErrormov ah,9int 21h	exit:retmain endpbinary proc nearpush cx                  ;保存cxmov cl,4                 ;将al左移4位,使al的高半字节为原来al的低半字节shl al,clmov cx,4sbin:shl al,1                   ;左移一位jc one                     ;进位为1,跳转到onemov byte ptr [di],'0'      ;否则,二进制数组置'0'jmp restart                 ;跳转到restartone:                        ;置'1'mov byte ptr [di],'1'restart:add di,1loop sbinpop cx                        ;恢复cxretbinary endp
codes endsend main

 

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

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

相关文章

goland

快捷键 command —ctrl option —alt 文件内搜索&#xff1a; command F ctrl F 前进回退&#xff1a; command option </> ctrl alt </> gofmt&#xff1a; command option L ctrl alt L

.NET Core 2.0 单元测试中初识 IOptionsMonitoramp;lt;Tamp;gt;

在针对下面设置 CookieAuthenticationOptions 的扩展方法写单元测试时遇到了问题。 public static IServiceCollection AddCnblogsAuthentication(this IServiceCollection services, IConfigurationSection redisConfiguration, Action<CookieAuthenticationOptions> …

汇编语言(十)之最小偶数

在数组中查找最小的偶数&#xff0c;并输出 程序运行&#xff1a; 代码&#xff1a; datas segmentminEven dw 0DATA dw 10 dup(101,1,21,81,5,261,3,421,4,541)DATACount dw ($-DATA)/type DATAoutputPrompt db min eve…

jzoj3462-休息【归并排序,逆序对】

正题 大意 一个序列&#xff0c;每次将一个单调下降的区间翻转&#xff0c;求最少次数将这个序列变成单调上升。 解题思路 考虑将O(n2)O(n2)的暴力转换。 我们先将开始时单调下降的区间翻转&#xff0c;然后我们会发现只有每个区间的边界才会需要交换&#xff0c;因为每个区…

【最全最详细】publiccms常用的代码片段

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 &#x1f9d8;‍♂️往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&a…

Remoting核心类库RealProxy迁移

在学习.net core的过程中&#xff0c;我们已经明确被告知&#xff0c;Remoting将不会被支持。官方的解释是&#xff0c;.net framework 类型包含了太多的Runtime的内容&#xff0c;是一个非常重量级的服务实现&#xff0c;已被确定为一项有问题的体系结构。说白了就是迁移的难度…

【最全最详细】publiccms其他常用代码片段(内容、站点)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 ✍往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&#xff08;使用方式…

jzoj3464-秀姿势【hash】

正题 给出n个数&#xff0c;删去k种数&#xff0c;使一种数连续的最长。 解题思路 用hash表储存每种数在leftleft到ii这个区间内没种数的个数,然后如果这个区间内的种数超过k+1个那么就移动left" role="presentation">leftleft指针并没次从hash中弹出一个…

汇编语言(十一)之统计非数字字符个数

输入以$结尾的字符串&#xff0c;统计并输出非数字字符的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentstring db 100h dup(?)nonNumberCount dw 0inputPrompt db input string and end by $:inputPromptLen …

Orleans配置---持久化

Grain理想的生命周期应该如下图所示: 这就如美国电影中的大反派一样,死了再复活,死了再复活.当然如果复活的反派没有记忆,这个电影就真没劲.现在我要求Grain的复活是有记忆的复活.看我怎么办到. 其中持久化需要用到数据库,因为只有数据库才能比较方便的为以后event sourcing做…

汇编语言(十二)之统计小于平均数的个数

在一个数组中找出并统计并该数组的平均数小的数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentDATA dw 10h dup(1,2,3,4,-1,5,7,-99,29,-11,294,-21,45,6,57,-54)average dw 0countOfLowAverage dw 0outputAverage …

【最全最详细】publiccmsCSS和JS引入无效的解决方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 ✍往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&#xff08;使用方式…

jzoj3463-军训【双重嵌套二分,随机数据水法】

正题 大意 每个人有两个值gigi和hihi&#xff0c;要求将序列分解成连续的几个序列。要求每个序列最大的hihi的和小于Limt的情况下每个序列gigi的和的最大值最小。 解题思路 我们二分最小的gigi的和的最大值 首先一个O(n2)O(n2)的dp想法&#xff0c;用fifi表示分割到第i个时最…

C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码

本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的控件操作. 也就是针对某个平台的…

笑脸喜迎新同学,热情送给新伙伴

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”今天&#xff0c;于我和王老师来说&#xff0c;是个非同寻常的一天。那是因为&#xff0c;今天迎来了4班的40余位新同学们&#xff01;一大早&#xff0c;同学们就陆陆…

汇编语言(十三)之偶数转成哥德巴赫猜想

将输入的偶数转换成哥德巴赫猜想&#xff0c;输出哥德巴赫猜想 程序运行&#xff1a; 代码&#xff1a; datas segmentmaxESLen db 0ffhevenSLen db 0evenString db 0ffh dup(?)evenNumber dw ?prime1 dw 0 prime2 dw 0 i…

2018/7/19-纪中某C组题【jzoj3461,jzoj3462,jzoj3463,jzoj3464】

前言 第三题有毒&#xff0c;第四题改一下就是正解了qaq。 今日分数 Rankperson分数6蒟蒻1709lrz1509zyc1509xjq1509xxy15018hjq11034hzb1034lw10 正题 T1&#xff1a;jzoj3461-小麦亩产一千八【斐波那契数列】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/a…

计算机入门的一些常用小技巧总结

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天总结了一些windows中常用的小技巧&#xff0c;也是明天上课需要演示的&#xff0c;希望对初入计算机行业的你们有所帮助&#xff0c;哈哈哈哈。常用shutdown命令&#xff1a;1.定时…

汇编语言(十四)之判断字符串是否包含数字

输入一串字符串&#xff0c;判断字符串里面是否包含数字&#xff0c;如果包含数字输出把cl的第五位设置为1&#xff0c;否则设置为0 程序运行&#xff1a; 代码&#xff1a; datas segmentSTRING_maxLength db 0ffhSTRING_Length d…

UnitOfWork知多少

1. 引言 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.Unit of Work --Martin Fowler Unit Of Work模式&#xff0c;由马丁大叔提出&#xff0c;是一种数据访问模…