汇编语言——输入八进制数,存入BX中

文章目录

    • 输入5位以内的八进制数,存入BX中
    • 输入6位以内的八进制数,存入BX中

输入5位以内的八进制数,存入BX中

bx为16位的寄存器。

5位以内的八进制数最多是15位二进制,bx最高位默认为0,不输出

只输出bx的5位8进制数

在这里插入图片描述

在这里插入图片描述

data segment
data ends
stack segment stackdw 100 dup (?)top label word
stack ends
code segmentassume cs:code,ds:data,ss:stack
main proc farmov ax,datamov ds,axmov ax,stackmov ss,axlea sp,topmov cx,0			;统计输入的合法字符mov si,8mov bx,0
L1:	mov ah,7			;不回显int 21hcmp al,0dh			;输入回车,跳转到以8进制输出bxje printcmp al,30hjb L1cmp al,37hja L1mov dl,al			;合法字符,输出mov ah,2int 21hinc cx				;合法字符+1;将输入字符转化成8进制,跟转化成10进制类似;10进制bx*10+输入的字符;8进制bx*8+输入的字符;由于乘法指令mul默认在ax,记得要交换ax,bxmov al,dland ax,7			;屏蔽高13位xchg ax,bx			;交换ax,bxmul siadd bx,axcmp cx,5			;判断输入的合法字符数,cx=5跳转到以8进制输出bx,否则继续输入je printjmp L1;bx以8进制输出
print:cmp cx,0			;合法字符数为0,退出je exitmov dl,0dh			;回车mov ah,2int 21hmov dl,0ah			;换行mov ah,2int 21hmov cx,5			;输出低15位对应的5位8进制rol bx,1			;输入了5位8进制,即5*3=15位二进制;输出5位8进制的时候记得把最高位移走再进入循环
L2:	push cxmov cl,3rol bx,clmov dl,bland dl,7			;屏蔽高5位add dl,30h			;转换成数字字符mov ah,2int 21hpop cxloop L2exit:mov ah,4chint 21h
main endp
code endsend main

输入6位以内的八进制数,存入BX中

bx想要存6位8进制数,最高位只能是0或1,输入其他情况以溢出处理。

在这里插入图片描述
在这里插入图片描述

data segmentstring db 0ah,0dh,"overflow!",'$'
data ends
stack segment stackdw 100 dup (?)top label word
stack ends
code segmentassume cs:code,ds:data,ss:stack
main proc farmov ax,datamov ds,axmov ax,stackmov ss,axlea sp,topmov bx,0mov si,8mov cx,0
L1:	mov ah,7int 21hcmp al,0dhje printcmp al,30hjb L1cmp al,37hja L1mov dl,almov ah,2int 21hinc cxmov al,dland ax,7xchg ax,bxmul sijc overflow			;乘法溢出,(dx,ax)高16位不为0,即ax*8超出了16位的范围add bx,axjc overflow			;加法溢出,bx+ax有进位,出了16位的范围cmp cx,6			;最多输入6个合法字符je printjmp L1;输出bx中的6位8进制	
print:cmp cx,0je exitmov dl,0ahmov ah,2int 21hmov dl,0dhmov ah,2int 21hrol bx,1			;最高位为0/1,直接循环左移1位输出mov dl,bland dl,1			;屏蔽高7位add dl,30h			;转换成数字字符mov ah,2int 21hmov cx,5			;接下来输出5位8进制
L2:	push cxmov cl,3rol bx,clmov dl,bland dl,7			;屏蔽高5位add dl,30h			;转换成数字字符mov ah,2int 21hpop cxloop L2jcxz exit			;跳过下面的overflowoverflow:lea dx,stringmov ah,9int 21hexit:mov ah,4chint 21h
main endp
code endsend main

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

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

相关文章

【Java框架】SpringBoot(一)基本入门

目录 SpringBoot介绍Spring Boot的诞生SpringBoot特点Spring和Spring Boot的关系Spring Boot的优点和缺点Spring Boot优点Spring Boot缺点 快速创建Spring Boot项目 IDEA创建SpringBoot工程1.打开IDEA,选择Spring Initlializr2.选择SpringBoot版本和初始化依赖3.更改…

微服务:Nacos注册中心

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Nacos注册中心 一、服务注册与发现1.启动Nacos…

视频教程下载:ChatGPT驱动的SEO、网络营销、生产力提升

用户遇到的一个常见问题是在ChatGPT对话过程中难以保持清晰的目的和专注。这可能导致互动无效和浪费时间。这门课程将教给各种创意人士——艺术家、制造者、博主、讲师和内容创作者——如何制定理想的提示配方,从而产生更有成效的对话和更高的回报。 这是一门关于如…

计算机网络【CN】Ch4 网络层

总结 一台主机可以有多个IP地址&#xff0c;但是必须属于多个逻辑网络【不同的网络号】。 解决IP地址耗尽&#xff1a; IP地址结构&#xff1a; 划分子网&#xff1a;&#x1d43c;&#x1d443;地址<网络号>,<子网号>,<主机号> CIDR&#xff1a;IP地址{&…

linux 守护进程的实现

文章目录 1. 守护进程及实现步骤2. 使用fork 方式创建守护进程3. 使用daemon 函数创建 1. 守护进程及实现步骤 特点&#xff1a; 长期运行&#xff1a;守护进程是一种生存期很长的一种进程&#xff0c;它们一般在系统启动时开始运行&#xff0c;除非强行终止&#xff0c;否则…

Day 31 贪心算法理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法理论基础 ​ 贪心算法的本质&#xff1a;选择每一个阶段的局部最优&#xff0c;从而达到系统的整体最优&#xff1b; ​ 贪心的套路就是没有套路&#xff0c;最好的策略就是举反例&#xff0c;因为大多数时候并不要求严格证明&#xff0c;只需要得到普遍性结论即可&a…

echart-better基于最新的echarts5.5标题旋转功能

使用教程以及相关的echarts-better最新的包在这里&#xff1a;https://edu.csdn.net/course/detail/24569 echarts在侧边竖向展示标题&#xff0c;以及次标题 主标题和次标题进行旋转&#xff0c;适用于移动端或其他场景。

Promise.all 的方法还没执行完就执行了.then

碰见一个问题&#xff0c;接盘了一个有问题的页面修改。 改变日期后 查询很多数据再去重新加载页面上的数据显示相关的组件。 问题就来了。 加载异常捏…… 最后我一通查&#xff1a; 重点来了 是因为这个Promise.all(数组)&#xff0c;里边这个数组的问题。现在是在数据中…

O2O电商接口解决方案||主流电商|跨境电商API接口应用场景及接入

01 涉及主流电商平台API数据采集接口 电商接口&#xff1a;淘宝&#xff0c;天猫&#xff0c;京东&#xff0c;拼多多&#xff0c;1688&#xff0c;抖音&#xff0c;微店&#xff0c;快手 跨境电商&#xff1a;LAZADA&#xff0c;速卖通&#xff0c;亚马逊&#xff0c;阿里巴巴…

二叉树中的最长交错路径

题目链接 二叉树中的最长交错路径 题目描述 注意点 每个节点的值在 [1, 100] 之间 解答思路 深度优先遍历整棵树&#xff0c;遍历的同时需要将到达根节点是向左交叉还是向右交叉以及路径长度传递到子树。当根节点是向左交叉遍历而来&#xff0c;子树想和根节点组成路径就只…

带RS485通讯,开关量输入输出,谐波分析等家户工商业储能智能计量电表ADL3000-E-B/KC可出口欧美UL认证

安科瑞薛瑶瑶18701709087 ◉概述 ADL3000-E-B 导轨式多功能电能表&#xff0c;是主要针对电力系统&#xff0c;工矿企业&#xff0c;公用设施的电能统计、管理需求而设计的一款智能仪表&#xff0c;产品具有精度高、体积小、安装方便等优点。集成常见电力参数测量及电能计量及…

剑指offer--调整数字顺序使奇数位于偶数前面

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有的偶数位于数组的后半部分. 算法分析 算法:利用快速排序的一次划分思想&#xff0c;后面的奇数往前移&#xff0c;前面的偶数往后移 时间复杂度 &#xff1a;O(n) 空间…