MIPS 浮点:swc1 与 s.s

2024-01-26

我正在做一些涉及的工作MIPS汇编,我不断遇到这四个浮点加载/存储伪指令:l.s, l.d, s.s, s.d。我在网上找到了一些文档,发现有四个“实际”指令似乎可以做同样的事情:lwc1, ldc1, swc1, and sdc1.

我唯一的问题是,有什么区别?据我所知,两组指令的作用完全相同。伪类的存在可能只是因为它们更容易阅读吗?


我唯一的问题是,有什么区别?据我所知,两组指令的作用完全相同。

你是对的。可能出现的唯一区别是伪指令被转换为多个“真实”指令时。

伪类的存在可能只是因为它们更容易阅读吗?

再说一次,是的。那是why它们存在。它们给人一种更具表现力的指令集的错觉。引用:

...汇编器还可以将机器语言指令的常见变体视为它们本身的指令。硬件不需要执行这些指令;然而,它们以汇编语言出现简化了翻译和编程。 ...

鉴于你的例子,更“清楚”地说:

l.s $f2, 24(t1)       # Load Single contained in 24(t1) to $f2

than

lwc1 $f2, 24(t1)      # Load Word into Coprocessor 1 from 24(t1) to $f2

(这些注释只是扩展了人类阅读 asm 助记符和操作数的方式,因此not实际编写有用的注释。从另一个观点来看,你可以说lwc1实际上可能值得评论# load single while l.s是不言自明的。)


同样对于整数,你可以更好地理解:

move $7, $18        # move contents of $18 to $7

than

add $7, $18, $0

对我来说,只是通过助记符来帮助获得更好易读的代码。

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

MIPS 浮点:swc1 与 s.s 的相关文章

  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • CISC 机器 - 它们不只是将复杂指令转换为 RISC 吗?

    也许我在架构上存在误解 但如果机器有 比如说 乘法指令 该指令是否未转换为更小的指令 或者过于复杂以至于最终与等效的 RISC 指令具有相同的速度 乘法是一个不好的例子 它在两种体系结构中都是一条指令 将上面的 乘法 替换为 CISC 中更
  • 在 Haskell 中将字符串转换为整数/浮点数?

    data GroceryItem CartItem ItemName Price Quantity StockItem ItemName Price Quantity makeGroceryItem String gt Float gt I
  • 在没有 epsilon 的情况下可以将浮点数与 0.0 进行比较吗?

    我知道 要比较两个浮点值 需要使用一些 epsilon 精度 因为它们并不精确 但是 我想知道是否存在边缘情况 我不需要那个 epsilon 特别是 我想知道这样做是否总是安全的 double foo double x if x lt 0
  • 从 DX:AX 寄存器转移到单个 32 位寄存器

    我在添加 16 位乘法的乘积时遇到问题 我想将一年 例如 2015 年 乘以 365 为此 我 mov dx 0 to clear the register mov ax cx cx holds the year such as 2015
  • 64 位 Windows 汇编器

    我想对 64 位 Windows 程序集进行编程 最好使用 NASM 我在 google 上查了一下 但似乎找不到 64 位 Windows 编译器 有些网站提到了ml64 但它似乎不再包含在VC 中 我尝试过 32 位程序集 但显然它在我
  • 使用 ACPI 在 MS-DOS 中关闭计算机

    我在基于 Pentium 的计算机上运行 MS DOS 6 22 主板支持 ACPI 并且想知道是否有一个可以用来关闭计算机的汇编语言例程 或者它是否比那个更难 即主板 具体的 基本上 我想创建一个小程序来从命令行关闭计算机 这是专门为此编
  • x86 asm 图形设置的分辨率高于 640x480?

    我刚刚开始使用汇编语言 感觉像学习新东西 并且遇到了一些问题 到目前为止 我一直在浏览的所有教程都没有回答 或者太旧而无法知道 1 我尝试了一些搜索 也许我只是不知道正确的关键字 但我找不到用于更改屏幕分辨率等的图形模式的更新列表 我发现的
  • 汇编语言程序中连续两次相乘

    我正在使用 8086 模拟器以及 DOSBOX 和 MASM 我知道当我们将 8 位与 8 位相乘时 答案将是 16 位 al 8 bit ax 当我们将 16 位与 16 位相乘时 答案将是 32 位 ax 16 bit dx ax 但如
  • 将十进制转换为十六进制

    首先 这是家庭作业 我正在尝试将 5 位数字读入寄存器 bx 假定该数字不大于 65535 16 位 以下是我尝试这样做的方法 但是 当我尝试打印该号码时 我仅打印输入的最后一位数字 这让我猜测 当我向 bx 添加另一个数字时 它会覆盖以前
  • 将以下机器语言代码(0x2237FFF1)翻译成MIPS汇编

    到目前为止我已经翻译了这段代码 但我不明白的是如何计算 计算 16 位立即地址的数量 0x2237FFF1 转为二进制 0010 0010 0011 0111 1111 1111 1111 0001 现在我正在读取操作码 001000 并知
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • 如何在 AVX/AVX2 中递增向量

    我想使用内在函数来增加 SIMD 向量的元素 最简单的方法似乎是为每个元素加 1 如下所示 note vec inc之前已设置为1 vec mm256 add epi16 vec vec inc 但是是否有任何特殊指令来增加向量 类似于in
  • 内核模块未加载(但 insmod 返回 0)

    我必须向现有设备 mips arch 添加一些功能 我已经尝试了几个 SDK 目前我取得了一些进展 但是 insmod 返回 0 成功 并且 lsmod 显示它们 但是 printk 和 create proc entry 都不起作用 但我
  • 气体:内存引用太多

    编译时指令如下 movl 4 ebp 8 ebp I got 内存引用过多 它出什么问题了 括号之前的数字是字节偏移量 这会导致发生内存引用 并且不能有两个movl 您需要先将值暂时移至寄存器 movl 4 ebp ecx movl ecx
  • 是否可以强制浮点数的指数或有效数匹配另一个浮点数(Python)?

    这是我前几天试图解决的一个有趣的问题 是否可以强制一个的有效数或指数float与另一个人一样float在Python中 出现这个问题是因为我试图重新调整一些数据 以便最小值和最大值与另一个数据集匹配 然而 我重新调整后的数据略有偏差 大约小
  • 英特尔 JCC 勘误表 - 用于缓解的前缀有什么影响?

    Intel 推荐 https www intel com content dam support us en documents processors mitigations jump conditional code erratum pd
  • 内联执行生成的汇编程序

    我正在阅读以下演示文稿 http wingolog org pub qc 2012 js slides pdf http wingolog org pub qc 2012 js slides pdf其中讨论了 4 10 19 内联 ASM
  • 为什么将 char 传递给函数会改变它在 c 中的值?

    我目前正在关注本作业簿 http www cs bham ac uk exr lectures opsys 10 11 lectures os dev pdf关于构建操作系统 我的目的是写一个64位内核 我已经在文本模式下加载 内核 代码并
  • nasm/ld“重定位被截断以适合:R_386_16”

    集会 BITS 16 global start start mov ax 0x07C0 mov ds ax mov si hw call print string jmp print string mov ah 0x0E char lods

随机推荐

  • 如何在 Django 中翻译 url?

    这是我的django project下面将其从英语翻译成法语 我用姜戈4 2 1 django project core settings py urls py my app1 views py urls py my app2 locale
  • 单击按钮后在 html id 中插入文本(无 JavaScript)

    我想在按下按钮后在文本框 ID button3 中包含一些文本 我有以下 html div style display none span text before pressing the button gt span div 在 java
  • 使用 knockoutjs + twitter bootstrap 跟踪标签

    我试图跟踪视图模型中选定的选项卡 但我似乎无法使其工作 在以下代码中 当您单击选项卡时 标题将正确更新 但不会显示选项卡的内容 如果您删除 click parent selectSection然后显示内容但标题不会更新 现在如果你删除dat
  • 使用另一个本地存储库更新本地 Git 存储库

    我有两个本地 Git 存储库 我使用以下命令从另一个克隆了一个 git clone path to local repo 1 我对每个 Git 存储库做了一些更改 现在我想将 local repo 1 的更改合并 更新到 local rep
  • 如何进行“group by/max”查询?

    我需要按 Field1 的值对所有记录进行分组 并计算每个组的 Field2 的最大值 那么 有什么方法可以使最大聚合在同一查询中的多个组上工作吗 GET yourindex search search type count aggs yo
  • Spark Standalone:TransportRequestHandler:调用 RpcHandler 时出错 - 在不同机器/虚拟机上启动工作程序时

    我对此完全陌生 所以如果有明显的错误 请原谅 确切的错误 在从站 INFO TransportClientFactory 69 毫秒后成功创建到 10 2 10 128 7077 的连接 引导程序中花费了 0 毫秒 警告工作器 无法连接到主
  • 导入错误:没有名为 typedefs 的模块

    我正在尝试使用 pyinstaller 创建一个独立程序 在此过程中 我遇到以下错误消息 Traceback most recent call last File
  • 使用 Collective.dexteritytextindexer 扩展 SearchableText

    我正在尝试扩展我的内容类型的 SearchableText 索引 我通过在模型文件中将多个字段标记为 indexer searchable true 成功地包含了多个字段 但是我无法从我的类型的 py 扩展 SearchableText 如
  • 创建与现有表具有相同表结构的 Oracle 临时表

    如何创建与现有表具有相同表结构的全局临时表 我知道这个概念在 SQL Server 中可用 例如 select into temp123 from abc 但我想在 Oracle 中执行相同的操作 Create global tempora
  • OpenGL:调用 glewInit() 后,glGetError() 返回无效枚举

    我使用 GLEW 和 freeglut 由于某种原因 调用 glewInit 后 glGetError 返回错误代码 1280 即使 glewExperimental GL FALSE 也是如此 我无法编译着色器 glGetProgramI
  • jQuery 在控制台中工作,但在原始代码中不工作

    我尝试使用以下代码将 href 添加到 td 内的 a 标记 当我在控制台中时它工作正常 但是当我在代码中尝试相同的操作时 它不起作用 谁能告诉我原因吗 table tr td a Hai a td tr table 使用 document
  • 如何将环境详细信息移至 EAR 之外

    我们的项目是一个中型 Web 应用程序 在 WAS 6 1 hibernate struts 上使用 RAD 7 0 开发 现已投入生产 目前 我们已将生产系统的 IP 地址硬编码在属性文件中 并将数据库架构详细信息硬编码在 hiberna
  • Swift 3 中的 UnsafePointer 初始化器

    我有一个收据验证类 自 Swift 3 发布以来已被弃用 我解决了一些问题 但仍然有很多 这是我使用的 GitHub 源代码 https gist github com baileysh9 4386ea92b047d97c7285 file
  • MySQL 开源报告服务

    我目前正在从事一个需要报告服务的项目 数据库后端是使用 MySQL 构建的 我希望有一个具有与 SSRS 类似功能的东西 有谁有这方面的开源解决方案的经验吗 他们有什么特别推荐的吗 必须通过浏览器访问它 Thanks David 当您说 报
  • 无法使用GDB进行远程调试

    我正在尝试使用 gdb 调试目标 但遭到拒绝 gdb 目标远程10 0 0 2 2345 使用10 0 0 2 2345进行远程调试 警告 架构拒绝了目标提供的描述 远程 g 数据包回复太长 00000000ba4eefbe00000000
  • 仅在 IE < 9 中按下“输入”时命令按钮不会提交

    我有2个
  • 在 M-x 编译中使用当前缓冲区的文件名

    我希望 emacs 使用当前缓冲区的文件名作为传递给的命令的一部分M x compile 例如 如果我正在编辑 foo rb 我想M x compile执行ruby foo rb 我尝试设置compilation command to li
  • 天数和总天数之间有什么区别?

    谁能告诉我 C 中这两个函数有什么区别 TotalDays 和 Days 因为我不确定应该在代码中使用哪一次 抱歉 这篇文章的信息量很少 但我能说的不多 由于我没有找到重复的内容 所以我在这里发表评论 始终阅读文档 http msdn mi
  • 如何在android中从互联网获取当前时间

    我正在制作一个应用程序 我想在其中从互联网获取当前时间 我知道如何使用设备获取时间System currentTimeMillis 即使经过很多搜索 我也没有得到任何关于如何从互联网获取它的线索 您可以使用以下程序从互联网时间服务器获取时间
  • MIPS 浮点:swc1 与 s.s

    我正在做一些涉及的工作MIPS汇编 我不断遇到这四个浮点加载 存储伪指令 l s l d s s s d 我在网上找到了一些文档 发现有四个 实际 指令似乎可以做同样的事情 lwc1 ldc1 swc1 and sdc1 我唯一的问题是 有