汇编语言——将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代理的,在奇安…

CDN的原理

CDN的原理 CDN的基本原理是依靠部署在各个区域大量缓存服务器的响应。当用户访问网站时,不需要访问站点的DNS服务器,而是利用全局负载技术将用户的请求直接指向最近的缓存服务器上,且保证服务器是正常工作的,访问的路径和内容是传…

leetcode199 二叉树的右视图

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

jupyter简要使用手册

目录 1. 启动 Jupyter Notebook 服务器: 2. 创建新笔记本文件: 3. 编写和执行代码: 4. 插入和编辑单元格: 5. Markdown 单元格的使用: 6. 保存和下载笔记本文件: 7. 其他功能: 1. 启动 Ju…

【PyTorch Lightning】.ckpt 是什么?里面有什么?

什么是检查点(checkpoint, ckpt)? 当模型在训练过程中时,随着其不断接收更多数据,其性能也会发生变化。在训练过程中保存模型的状态是一种最佳实践。这样可以在开发模型的过程中,在每个关键点上获得模型的…

成为程序员后你都明白了程序即人生,并无二样

成为程序员后你都明白了什么? 简介:一个16年开发老兵的心路历程 方向一:技术成长 先说下本职吧,技术这一块呢。因为笔者非常喜欢技术从初二就开始接触简单的编程,考学时所有的专业全填写了计算机相关的专业&#xff0…

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

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

PgSQL的登录相关(Ubuntu22.04)

一 将用户设为密码登录方式 1 修改用户的密码 sudo -u postgres psql -c "ALTER USER yuhui WITH PASSWORD xinmima;" 2 修改配置,指定用户yuhui使用密码登录 sudo vi /etc/postgresql/16/main/pg_hba.conf local all postgres …

遥感图像分割 | 基于一种类似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),而一般我们的规划出来的路径不带角度。这里通过总结相关方法,并提供一个案例。 将点路径拟合成一条完整的线路径算法 将点路径拟合成一条完整的线路径是一个常见的问题…

ai智能电话机器人是如何自主学习的

电话机器人的出现,帮助很多传统电销行业企业进入新的发展阶段。它主要通过语音识别和针对语意的理解识别客户所说的内容,针对性的回答问题,为企业高效筛选意向客户。除了电话机器人语音识别之外,电话机器人能够自主学习&#xff0…