在汇编 64 位 at&t 浮点数字错误中将 int 打印为 ascii

2023-12-24

我编写了一个单独的程序只是为了弄清楚如何做到这一点,之前我在要打印的数字中添加了 48,但现在当我得到大于 9 的数字时,它就不再足够了。

因此,下面的程序应该将 23 放入 my temp,将 23 与 10 进行比较,如果它小于 10,我可以打印,否则将 temp 放入 rax,将 10 放入 r11 并将 23 除以 10。 将 rax 的结果放入 temp 中并再次检查。 我仍然需要添加一种方法来检索较早的数字,但首先要做的就是。 我是否误解了发生的事情,我得到的结果是浮点数错误

#include <stdio.h>          #Inkludera standard I/O

.data                   #Specifiera data
temp:           .quad   0
temp2:          .quad   0

.text   

  .global main
main:
movq    $23, temp
jmp check

check:
cmpq    $10, $temp
jl  under10
movq    $temp, %rax
movq    $10, %r11
divq    %r11
movq    %rax,temp
jmp check

under10:
addq    $48, temp
movq    $temp,%rdi
call    puts

当你这样做时divq %r11你实际上是在划分 128 位寄存器对rdx:rax by r11。所以要得到一个适合的商rax你通常会想要清除rdx在除法之前,即在divq,添加:

xorq %rdx, %rdx   # rdx = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在汇编 64 位 at&t 浮点数字错误中将 int 打印为 ascii 的相关文章

  • 在 x86 ASM 中测试零通常哪个更快:“TEST EAX, EAX”与“TEST AL, AL”?

    测试 AL 中的字节是否为零 非零通常哪个更快 TEST EAX EAX TEST AL AL 假设之前有一个 MOVZX EAX BYTE PTR ESP 4 指令加载了一个带有零扩展的字节参数到 EAX 的其余部分 防止了我已经知道的组
  • 为什么当大小大于 50 时,该程序花费的时间会呈指数级增长?

    所以我正在为类编写一个 ARM 汇编快速排序方法 我对大部分内容都有了解 除了复杂性没有意义 我们将其与我们制作的另一种冒泡排序方法进行比较 它对于具有 1 个参数和 10 个参数的示例表现更好 然而 我什至无法比较 100 个参数测试 因
  • “rep stos”x86 汇编指令序列有什么作用?

    我最近偶然发现了以下汇编指令序列 rep stos dword ptr edi For ecx重复 存储内容eax到哪里edi指向 递增或递减edi 取决于方向标志 每次 4 个字节 通常 这用于memset型操作 通常 该指令简单地写成r
  • 如何知道寄存器是否是“通用寄存器”?

    我试图了解寄存器必须具备什么标准才能被称为 通用寄存器 我相信通用寄存器是一个可以用于任何用途的寄存器 用于计算 将数据移入 移出等 并且是一个没有特殊用途的寄存器 现在我读到了ESP寄存器是通用寄存器 我猜是ESP寄存器可以用于任何事情
  • 从 NASM 调用 C 函数 _printf 会导致分段错误

    我一直在尝试使用 NASM 在 Mac OS 和 Windows 上学习 64 位汇编 我的代码是 extern printf section data msg db Hello World 10 0 section text global
  • ASCIIEncoding.ASCII.GetBytes() 返回意外值

    这段 C 代码 string s u00C0 byte bytes ASCIIEncoding ASCII GetBytes s Trace WriteLine BitConverter ToString bytes 产生以下输出 3F 为
  • 使用 NEON 优化 Cortex-A8 颜色转换

    我目前正在执行颜色转换例程 以便从 YUY2 转换为 NV12 我有一个相当快的函数 但没有我预期的那么快 主要是由于缓存未命中 void convert hd uint8 t orig uint8 t result uint32 t wi
  • 阴影空间示例

    EDIT 我接受了下面的答案 并添加了我自己的代码的最终修订版 希望它向人们展示影子空间分配的实际示例 而不是更多的文字 编辑 2 我还设法在 YouTube 视频 所有内容 的注释中找到了一个调用约定 PDF 的链接 其中有一些关于 Li
  • 如何将输入传递到扩展汇编中?

    考虑这段代码 来自我的先前的问题 https stackoverflow com questions 37955538 segfault on movq instruction int main asm movq 100000000 rcx
  • 我可以在C中直接比较int和size_t吗?

    我可以比较一个int and a size t像这样的变量 int i 1 size t y 2 if i y Do something 或者我必须输入其中之一 只要满足以下条件 它就是安全的int为零或正数 如果它是负数 并且size t
  • 设置 IRQ 映射

    我正在遵循一些教程和参考文献来尝试设置我的内核 我在教程中遇到了一些不熟悉的代码 但根本没有解释它 这是我被告知映射的代码16 IRQs 0 15 到 ISR 地点32 47 void irq remap void outportb 0x2
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • 为什么 FMA _mm256_fmadd_pd() 内在函数有 3 个 asm 助记符:“vfmadd132pd”、“231”和“213”?

    有人可以向我解释一下为什么融合乘法累加指令有 3 种变体 vfmadd132pd vfmadd231pd and vfmadd213pd 而只有一个 C 内在函数 mm256 fmadd pd 为了简单起见 在 AT T 语法中 有什么区别
  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • LC3 LEA指令和存储的值

    我对这个问题感到困惑 指令后寄存器0中存储的值是多少 LEA R0 A 被处决了吗 为什么答案是x370C 我认为应该将A的地址加载到R0中 如果是这样我们怎么知道地址 有人可以帮忙吗 非常感谢 ORIG X3700 LEA R0 A LD
  • 在 x86 汇编中将 64 位常量移至内存

    我正在使用 Intel x64 程序集 NASM 编译器 尝试将 0x4000000000000000 常量移至内存 该常量在 ieee 754 标准双精度中应等于 2 0 我正在使用的代码是 define two 0x4000000000
  • 长多字节 NOP:通常理解的宏或其他符号

    x86 和 x86 64 处理器不仅具有单字节 这不是什么大秘密NOP指令 还包括各种类型的多字节类 NOP 指令 这些是我设法找到的 AMD 推荐 参考 AMD 系列 15h 处理器的 AMD 软件优化指南 文档 47414 http s
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • JavaScript DOM 对象到 jQuery 对象

    如何将 JavaScript DOM 对象转换为 jQuery 对象 tr function changeStatus myObject XXX removeClass XXX应该写什么 我知道我可以使用 id 和 id 选择器来解决问题
  • 缺少 Style.Triggers 和 x:Type。为什么?

  • 向服务器发送视频和音频流

    我正在尝试开发一个系统 其中有两个客户端可以通过服务器从浏览器相互视频聊天 第一个客户端将其视频流发送到服务器 服务器将其发送到第二个客户端 此外 服务器将客户端的流保存为视频文件 我使用了这个 WebRTC 示例 https github
  • 平台工具集 v140 和 v140_xp 之间有什么区别?

    以结尾的平台工具集之间有什么区别 xp以及那些没有的 例如 v140 vs v140 xp 为什么没有以以下结尾的工具集 vista or 7 当我在 Windows 7 上编译程序时v140工具集 它可以在 Windows XP Vist
  • 禁用 nginx 日志

    如何禁用 nginx 日志记录而不出现严重错误 error log off 不起作用 只是创建文件名 off 真的 不是开玩笑 error log dev null 不支持 操作系统 freebsd 我需要禁用子域的日志记录 http wi
  • 计算数组的位/字节大小

    我有一个 Javascript 数组 其中有很多子数组 计算数组拥有多少位 字节的最佳 最简单方法是什么 我要将数组发送到我的 PHP 服务器 它只能有 5kB 大 有没有本地方法 我对位不太熟悉 如果我理解正确的话 1 个字符适合 8b
  • Python:并行执行cat子进程

    我正在运行几个cat zgrep远程服务器上的命令并单独收集其输出以进行进一步处理 class MainProcessor mp Process def init self peaks array super MainProcessor s
  • 如何查找 Qt SDK 中使用的当前 QtWebKit 版本?

    我想知道 Qt SDK 中使用的 QtWebKit 模块的版本 谁能帮我吗 1 QTWEBKIT VERSION STR 宏给出 QtWebKit 版本 2 qWebKitVersion 给出使用的 webkit 版本
  • 如何将写入流 1 的内容通过管道传送到流 2 中?

    这是我的场景 producer WriteStream stream consumer ReadStream stream 我想要的东西允许由生成的字节producer将逐步转移至consumer 我可以将所有内容写入MemoryStrea
  • 如何将 Hashmap> 膨胀到 Recyclerview 中

    我希望键字符串必须充当标题 并且列表必须在该映射键下膨胀RecyclerView 谢谢你的帮助 public class Adapter extends RecyclerView Adapter
  • MultiFieldQueryParser 中的提升因子

    我可以使用不同的因素来提升 MultiFieldQueryParser 中的不同字段吗 另外 我可以分配给字段的最大提升因子值是多少 万分感谢 埃德 MultiFieldQueryParser有一个接受增强图的 构造函数 1 你可以像这样使
  • WUA API 无法卸载更新

    我在使用 Windows Update Agent WUA API 时遇到问题 每当我尝试使用卸载更新时IUpdateInstaller IsForced True IUpdateInstaller BeginUninstall 我越来越W
  • Angular 2 Jasmine 测试,加载 app.component.ts 中的所有组件?

    我正在开发一个小型测试应用程序 以更好地学习 Angular 2 和 Angular 2 中的单元测试 来自react Jest 背景 将所有组件都包含在 app component ts 中感觉很奇怪 这就是我到目前为止所拥有的组件层次结
  • 如何通过javascript/html5播放wav音频字节数组?

    我正在使用以下方法来播放包含 wav 数据的字节数组 该函数是从 GWT 项目调用的 这个函数会播放声音 但听起来像是某种地狱怪物 采样率绝对是正确的 声音是由 neospeech 生成的 并且我已经尝试了 numberOfSamples
  • C++11 中返回本地值的最佳方式

    在过去 如果我想要一个对象的字符串表示A 我会写一些带有签名的东西void to string const A a string out 以避免额外的副本 这是否仍然是 C 11 中的最佳实践 包括移动语义等 我读过一些关于其他上下文的评论
  • 混合应用程序中的人脸识别:Apache Cordova

    我想使用 apache Cordova 创建一个混合应用程序 我想在其中集成人脸识别 API 最好是https www microsoft com cognitive services en us face api https www mi
  • microsoft oidc id 令牌的 oid 声明是否与我从 microsoft graph api 获得的 id 相同?

    关于 oid 索赔 https learn microsoft com en us azure active directory develop id tokens payload claims从 azureAD 的访问令牌 ID 令牌解码
  • 组件本地状态未使用反应自定义挂钩更新

    我刚刚开始使用反应钩子 在使用自定义钩子时遇到了一些问题 这可能是缺乏理解 但这就是我正在尝试的 我的自定义钩子 import React useState from react export const useValidateConten
  • numpy 保存/加载损坏数组

    我正在尝试保存一个大的 numpy 数组并重新加载它 使用numpy save and numpy load 数组值已损坏 更改 数组预保存和加载后的形状和数据类型是相同的 但加载后数组的绝大多数值都归零 数组是 22915 22915 值
  • 在汇编 64 位 at&t 浮点数字错误中将 int 打印为 ascii

    我编写了一个单独的程序只是为了弄清楚如何做到这一点 之前我在要打印的数字中添加了 48 但现在当我得到大于 9 的数字时 它就不再足够了 因此 下面的程序应该将 23 放入 my temp 将 23 与 10 进行比较 如果它小于 10 我