汇编语言——将BX中的无符号数和有符号数以二进制、八进制、十六进制、十进制形式输出

文章目录

    • 将BX中的无符号数以二进制形式输出
    • 将BX中的无符号数以八进制形式输出
    • 将BX中的无符号数以十六进制形式输出
    • 将BX中的无符号数以十进制形式输出
    • 将BX中的有符号数以十进制形式输出

将BX中的无符号数以二进制形式输出

利用移位指令会影响CF,默认dl=30h(数字0),用adc dl,0加上CF的值,直接用2号功能输出。

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 bx,-458		;1111 1110 0011 0110mov cx,16		;bx16位,循环16次
L1:	rol bx,1		;左边的先显示,循环左移mov dl,30h		;默认dl显示0adc dl,0		;带进位加法mov ah,2int 21hloop L1mov ah,4chint 21h
main endp
code endsend main

将BX中的无符号数以八进制形式输出

在这里插入图片描述
二进制转换成八进制:

从低到高,3位二进制转换成1位八进制

bx为16位,能转换成6位8进制:最高位0/1+5位8进制。

还是利用移位指令ROL,先把最高位移出,直接输出;

循环5次,每次ROL3位,把bx的最高3位移到最低3位,取出bl,屏蔽bl的高5位,显示输出。

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 bx,-958		;1111 1100 0100 0010(二进制)/176102(八进制)rol bx,1		;第一位直接输出		mov dl,30h		;默认为数字0adc dl,0mov ah,2int 21hmov cx,5		;还有5位八进制数
L1:push cx			;因为bx要循环左移3次,要用到cl,保护cx进栈mov cl,3		;bx循环左移3次rol bx,clmov dl,bl		;把bx的低8位放到dland dl,7		;屏蔽高5位add dl,30h		;转换成数字mov ah,2		;显示输出int 21hpop cx			;还原cx,继续循环loop L1mov ah,4chint 21h
main endp
code endsend main

将BX中的无符号数以十六进制形式输出

跟八进制同理,十六进制输出要注意:0-9和A-F的输出

显示0-9,在原来的基础上+30H

10/0AH,要输出A/41H/65 ———— 二者相差65-10=55=37H
显示A-F,在原来的基础上+37H

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 bx,-6908		;1110 0101 0000 0100(二进制)/E504(十六进制)mov cx,4
L1:push cxmov cl,4rol bx,clmov dl,bland dl,0fh			;屏蔽高4位cmp dl,9ja L2add dl,30h			;输出0-9jmp printL2:add dl,37h			;输出A-Fjmp printprint:mov ah,2int 21hpop cxloop L1mov ah,4chint 21h
main endp
code endsend main

将BX中的无符号数以十进制形式输出

核心思想:循环(BX)除以10,余数进栈,倒序输出

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 bx,65535	;无符号数bx最大为65535mov cx,0		;统计余数的个数mov si,10		;想要用(dx,ax)除以10,得先把10放进16位的寄存器simov ax,bx		;被除数(dx,ax)mov dx,0
L1:div sipush dx			;把余数进栈inc cx			;余数的个数+1cmp ax,0		;判断商是否为0,0退出,否则继续除10je L2mov dx,0		;商在ax,余数在dx,下一次的被除数(dx,ax)要把dx清零jmp L1L2:pop dx			;因为每一次的余数为0-9,只存放在dl,直接pop dx,再用2号功能显示输出add dl,30h		;转换成数字字符mov ah,2int 21hloop L2mov ah,4chint 21hmain endp
code endsend main

将BX中的有符号数以十进制形式输出

在这里插入图片描述

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 bx,-32768mov cx,0mov si,10mov ax,bxmov dx,0add ax,0jns L2		;符号位为0neg ax		;符号位为1,求补
L1:div sipush dxinc cxcmp ax,0je exit1mov dx,0jmp L1L2:div sipush dxinc cxcmp ax,0je exit2mov dx,0jmp L2exit1:mov dl,'-'mov ah,2int 21hexit2:	pop dxadd dl,30hmov ah,2int 21hloop exit2mov ah,4chint 21h
main endp
code endsend main

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

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

相关文章

基于Springboot的社区帮扶对象管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的社区帮扶对象管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

软航H5 PDF签章产品经nginx代理之后浏览器中PDF盖章时提示:签章失败:网络错误 的问题排查及解决办法

目录 问题现象 问题排查思路 问题处理办法 附:软航H5 PDF签章产品介绍 软航电子签章系统 软航版式文档签批系统 问题现象 问题描述:在系统中集成了软航H5 PDF签章产品,软航H5 PDF签章产品的对应服务是通过nginx代理的,在奇安…

leetcode199 二叉树的右视图

题目 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 解析 这道题首先能想到的办法,就是使用迭代法层次遍历&…

Spring Cloud+Uniapp 智慧工地云平台源码 智慧工地云平台AI视频分析应用

目录 AI应用与环境治理 设备管理与危大工程 塔吊安全监管 智慧工地APP端 智慧工地硬件设备 智慧工地主要功能模块 智慧工地可以通过以下几个方面为建筑行业赋能: 1.提高工程效率 2.提高工程安全性 3.提高工程质量 4.提高工程管理效率 绿色施工 质量管理…

遥感图像分割 | 基于一种类似UNet的Transformer算法实现遥感城市场景图像的语义分割_适用于卫星图像+航空图像+无人机图像

项目应用场景 面向遥感城市场景图像语义分割场景,项目采用类似 UNet 的 Transformer 深度学习算法来实现,项目适用于卫星图像、航空图像、无人机图像等。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 conda create -n airs python3.8…

CAS和synchronized原理

synchronized与CAS Synchronized 原理加锁工作过程一些优化 CAS实现原子类 小结 Synchronized 原理 synchronized 既可以是乐观锁, 也可以是悲观锁.synchronized 既可以是轻量级锁, 也可以是重量级锁.synchronized 重量级锁是由系统的互斥锁实现的; 轻量级锁是基于自旋锁实现的…

C++学习进阶:智能指针

目录 前言: 1.知识引入 1.1.异常安全问题 1.2.RALL和智能指针雏形 2.智能指针的发展 2.1.auto_ptr的引入 2.2.unique_ptr的引入 2.3.救世主shared_ptr(重点) 2.4.weak_ptr的引入(重点) 2.5.测试函数 3.定制删…

学习Python先从了解Python开始

Python是一种高级编程语言,它的语法简洁易读,功能强大,应用领域广泛。Python不仅适用于数据科学、机器学习、Web开发等领域,还可以用于自动化脚本编写、游戏开发等。在本文中,我们将探讨Python的特点、应用领域以及未来…

网工内推 | 兴业银行总行正编,科技运维部,硕士以上学历

01 兴业银行 招聘岗位:安全渗透专家 职责描述: 1.负责牵头组织本行红蓝对抗、攻防演练等工作; 2.负责牵头制定有效的渗透测试方案,开展对本行防御体系的验证工作; 3.负责牵头组织本行各类应用系统的渗透测试与漏洞扫…

图神经网络与分子表征:7. LEFTNet

在执行性质预测任务时,我们需要考虑两个问题:1. 如何正确的将图结构进行编码?2. 如何汇聚编码信息预测整个分子的任务? LEFTNet 就是通过回答上述问题来进行模型设计的。 原文地址 算法设计 原文中,作者定义了三个图…

小米安卓春招面试一面

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 1.多态 2.hashmap,hashtable和concurrenthashmap,问的定义实现和区别 3.jvm的运行…

02 - ArcGIS For JavaScript-矢量数据的符号化处理(Symbol)

文章目录 综述Symbol的分类Point的符号化Point符号化为二维几何:Point位图符号化:Point的三维结合符号化Point 符号化为GLTF模型 PolylineSymbol-线符号化基本样式管道样式墙体样式条带样式方管样式 PolygonSymbol-面符号化水面效果拉伸效果填充效果 Mes…

PCB----Allegro软件使用小技巧

1.修改画好的同面积: 2.修改铜的网络,或者铺铜铺错网络了: 点击需要修改的铜 在点击要修改成的网络 3.铺铜需要注意: 铜片和铜片之间间隔2个点(点设置6.25,如下图1-2:) 每一个单独的…

差速机器人模型LQR 控制仿真——路径模拟

LQR路径跟踪要求路径中带角度,即坐标(x,y,yaw),而一般我们的规划出来的路径不带角度。这里通过总结相关方法,并提供一个案例。 将点路径拟合成一条完整的线路径算法 将点路径拟合成一条完整的线路径是一个常见的问题…

每日一题 — 最小覆盖子串

76. 最小覆盖子串 - 力扣(LeetCode) 解法一:暴力遍历哈希表 解法二:滑动窗口哈希表 定义left和right初始化为零,固定left,先向右遍历right,放到哈希表中这个时候我们需要统计有效字符的个数&…

五种主流数据库:集合运算

关系型数据库中的表与集合理论中的集合类似,表是由行(记录)组成的集合。因此,SQL 支持基于数据行的各种集合运算,包括并集运算(Union)、交集运算(Intersect)和差集运算&a…

chromedriver最新版下载地址

地址1.百度网盘 链接(提取码:2vo3):百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com…

数据很重要,ASM磁盘组损坏,使用AMDU来抢救

欢迎关注“数据库运维之道”公众号,一起学习数据库技术! 本期将为大家分享“数据很重要,ASM磁盘组损坏,使用AMDU来抢救”的处置案例。这个案例对个人来说比较经典,下面我将把自己的处理思路进行整理与总结。 环境信息&#xff1…

安装Milvus的可视化工具Attu教程

提供两种方式来安装可视化工具Attu 一、docker安装 # 执行命令,加个 -d 在后台运行 docker run -d -p 8000:3000 -e MILVUS_URL127.0.0.1:19530 zilliz/attu:v2.2.8 至此安装完成! 浏览器输入地址 http:127.0.0.1:8000即可访问 Attu主页 如果拉取最新…

大数据操作第二天

文章目录 大数据命令的方式现在有三个命令的方式 启动一个计算圆周率的jar包方式什么是文件系统数据元数据传统的存储方式分布式存储方式元数据记录文件位置信息副本机制的方式 hafs 存储方式shell 操作大数据的方式创建目录查看文件目录下的方式上传文件的方式 大数据命令的方…