汇编指令陷阱有什么作用?

2024-05-02

当程序需要时,程序通常会发出软件陷阱 由操作系统提供服务。通用异常处理程序 操作系统确定陷阱的原因并做出响应 适当地。

汇编指令 trap 和 BASIC 中的 TRAP 指令一样吗? 答案似乎是肯定的。你能接受还是拒绝我的结论?

“不中断”的代码是根据我的指示:

noint:
    PUSH r8
    movia r8,0x003b683a # machine code for TRAP
    ldw et,-4(ea) # read instr closest to return
    cmpeq et,et,r8 # compare
    POP r8
    bne et,r0,TrapHandler # if equal, jump to traphandler

Update

AFAIK 在 BASIC 中你可以写例如

10 TRAP 20

使第 20 行成为处理错误的行。


不确定 TRAP 在 BASIC 中做什么,但是TRAP您链接的汇编程序手册中的指令会生成可由操作系统处理的硬件异常。

程序员很少需要在其代码中使用此指令。它的典型用途是由调试器插入到正在调试的代码中需要停止的位置(断点),然后运行/继续程序,并在停止时重新获得控制权。TRAP指令已达到。

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

汇编指令陷阱有什么作用? 的相关文章

  • 测试 xmm/ymm 寄存器是否为零的更快方法?

    It s fortunate that PTEST does not affect the carry flag but only sets the rather awkward ZF also affects both CF and ZF
  • 如何在 AVX/AVX2 中递增向量

    我想使用内在函数来增加 SIMD 向量的元素 最简单的方法似乎是为每个元素加 1 如下所示 note vec inc之前已设置为1 vec mm256 add epi16 vec vec inc 但是是否有任何特殊指令来增加向量 类似于in
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 为什么将 char 传递给函数会改变它在 c 中的值?

    我目前正在关注本作业簿 http www cs bham ac uk exr lectures opsys 10 11 lectures os dev pdf关于构建操作系统 我的目的是写一个64位内核 我已经在文本模式下加载 内核 代码并
  • 在 AT&T x86 程序集中查找转义字符

    问题一 我有以下汇编代码 其目的是循环输入字符串 并计算它遇到的转义字符 的数量 globl sprinter data escape string string num escape long 0 num characters long
  • 编写一个新的 jit

    我有兴趣用 C 启动我自己的 JIT 项目 我对汇编或编译器设计等并不熟悉 但是 我对生成的机器代码格式非常不熟悉 比如 当一切都说了和完成后 mov 指令实际上是什么样子 是时候调用它了函数指针 那么 创建这样的东西的最佳资源是什么 编辑
  • 为什么 NASM 在使用有效的指令助记符作为操作数中的符号名称方面没有问题?

    我编写了以下简单程序 但 nasm 拒绝编译它 section text global start start mov rax 0x01 mov rdi 0x01 mov rsi str mov rdx 0x03 syscall mov r
  • 为什么 GCC 不将这个“printf”优化为“puts”?

    这是我的测试代码 include
  • 0 和双字 0 有什么区别?

    正如问题所述 有什么区别 例如 mov eax 0 and mov eax dword 0 我一直在使用 cmp 语句 但我无法理解其中的区别 一个是地址 另一个是数值 如前所述 MOV 指令没有区别 对于 CMP 您将有以下区别 qwor
  • C 结构如何返回[重复]

    这个问题在这里已经有答案了 我想知道如何返回一个结构 例如 typedef struct number uint64 t a b c d number number get number number res 0 0 0 0 return
  • MAC-1 汇编递归

    如何在 MAC 1 汇编器中调用递归函数 在 C 中你会做类似的事情 int func int num if num 0 return 1 return num func num 1 我知道如何使用调用函数 CALL 以及如何将参数加载到堆
  • X86 汇编将小写字母转换为大写字母

    实现toUpper函数 将字符串中的小写字母转换 为大写 该函数采用一个参数 char string 字符串是一个 char类型指针 指向字符串的开头 因为C 样式字符串以零结尾 我们不需要取长度 字符串作为另一个参数 我需要帮助开始 我不
  • 16位汇编:无法取消引用某些寄存器[重复]

    这个问题在这里已经有答案了 我正在尝试以下 Intel 16 位指令 mov si word reg where reg是一些寄存器 它编译得很好 如果reg is bx 但当它是ax cx or dx 我使用 NASM 作为我的汇编器 我
  • 如何创建一个扩展为“(x+y*240)*2”这样的表达式的 GNU GAS 宏?

    我正在使用 GAS 为 ARM Linux 构建一个程序 但我想做一些宏以使我的开发更加智能 然后我想知道 我怎样才能为此做一个宏 x y 240 2 were x and y are int 将像这样使用 mov r0 MACRO SHO
  • 汇编:使用数据段寄存器(DS)

    目前我正在学习 x86 汇编 因为我喜欢微控制器编程 所以我熟悉汇编 目前我一直在到处寻找这个问题的答案 但似乎找不到它 DS寄存器 我知道它应该指向我程序中的全局数据 但我不知道知道它到底是如何工作的 我正在使用 NASM 在大多数简单的
  • 如果我有一个 8 位值,那么使用 8 位寄存器而不是 16、32 或 64 位寄存器有什么优势吗?

    我读到的 x86 asm 介绍性文献似乎在所有实际场景中都坚持使用 32 位寄存器 eax ebx 等 除了证明 64 位寄存器也存在之外 如果确实提到 16 位寄存器 那也是作为历史注释来解释为什么 32 位寄存器的名称前面有一个 e 编
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 在LPC2148 ARM处理器上创建中断向量的汇编代码

    我最近刚刚开始使用 LPC2148 ARM 处理器 我试图理解一些有关创建中断向量的汇编代码 这是代码 Runtime Interrupt Vectors Vectors b start reset start ldr pc undf un
  • 如果没有按下任何键,则检查按键而不阻塞

    我正在创建一个应用程序来查看当前时间 并创建了一个循环来每秒更新时间 循环看起来像这样 UPDATE The code to be re executed JMP UPDATE 但我无法结束它 当我使用 MOV AH 00H INT 21H
  • 内存映射图形输出

    我正在探索使用内存映射图形绘制像素和线条 我在 Windows 的 Textpad 中使用 TASM 当我单击 运行 时 整个屏幕变成蓝色 就是这样 没有绘制像素 model small stack data saveMode db xVa

随机推荐

  • 如何从日期中获取微秒?

    我正在尝试从 a 中获取微秒Date 但我不能 Date date new Date No Date仅存储毫秒精度的值 如果您想要微秒精度 您可能需要看看JSR 310 http sourceforge net apps mediawiki
  • 如何更改 JAR 文件中的常规 JAVA COFFEE CUP 图标

    我可以更改框架中的 JAVA COFFEE CUP 图标 上 左 但如何更改 RUNNABLE JAR 文件的常规 JAVA COFFEE CUP 图片 是否有可能仅更改一个 JAR 文件的文件图标 谢谢 JAR 文件没有图标 操作系统为其
  • 如何在 Entity Framework Core 中调用标量函数

    下列的本文 http anthonygiretti com 2018 01 11 entity framework core 2 scalar function mapping 我试图使用 Entity Framework Core 将内部
  • 在两个页面/选项卡之间进行通信

    我想要一个 JavaScript 文件来控制两个 HTML 文件同时地 div div 那是第一页 接下来是第二页 div div
  • FXML load() 期间出现 JavaFX IllegalAccessException

    我有一个由以下代码调用的对话框窗口 DialogController是使用模式对话框窗口的辅助类 它主要将控制器引用与其窗口捆绑在一起 void handleServicesEdit ActionEvent event throws IOE
  • Laravel 5.3 Blade 解码 HTML 特殊字符

    我在数据库中保存了一些 HTML 代码 当我将这些数据发送到刀片时 CSS 无法正常工作 在页面源代码中我发现 我该用什么方法将 lt 转换为 有人可以帮助我吗 更改您的语法 to 这应该够了吧
  • 将我的应用程序翻译成匈牙利语

    我用英语开发了一个应用程序 我必须为客户翻译一些匈牙利语文本 我在values 文件夹中有一个menu xml 文件 并在values hu 文件夹中创建一个新的menu xml 我启动手机并选择马扎尔语言 选择了好的语言 我看到了匈牙利语
  • Kotlin:使用地图变换时 {} 和 () 之间的区别?

    我是科特林新手 我总是使用带花括号的地图变换 然后 为什么这有效 gt val x someList map SomeConstructor 这不是吗 val x someList map SomeConstructor 我在在线教程的任何
  • 使用 glmnet 和 lm 的普通最小二乘法

    这个问题是在stackoverflow com q 38378118 https stackoverflow com q 38378118但没有得到满意的答复 0 的 LASSO 相当于普通最小二乘法 但对于以下情况似乎并非如此glmnet
  • AngularJS:清除 $watch

    我的 AngularJS 应用程序中有一个监视功能 scope watch quartzCrystal function 但是 在某些条件之后 在我的示例中 更改我的页面 单页应用程序 https en wikipedia org wiki
  • 如何在iPhone应用程序中每天的特定时间调用一个方法?

    我想在我的 iPhone 应用程序中每天的特定时间调用一个方法 我怎样才能实现这个目标 使用 iPhone SDK 和封闭的应用程序并不能做很多事情 您可以让它在特定时间发送本地推送通知 但在用户手动打开您的应用程序之前不会执行您的代码 请
  • $.each 中的 if 语句,Jquery

    我正在基于从 WebMethod 返回的 JSON 数据构建一些 html 我需要知道如何省略某些 elements based on if a particualr value is present or not I ve got thi
  • Groovy 错误地使用了封闭类的构造函数?

    Given static class Question stuff List
  • 如何修复 IntelliJ 中的包名称?

    是否可以修复 IntelliJ 中给定文件夹中的所有包名称 如果手动导入IntelliJ中的文件 其包名全部错误 包括子文件夹 如何批量修复包名 到目前为止 这给我带来了很多悲伤 移动到包或重命名包 这一定是一个错误 Example 如果我
  • Google应用程序脚本忽略数据验证错误

    我有一些具有数据验证规则的工作表可用作下拉列表 当尝试将其他 未经验证的 数据插入这些单元格时 我的代码现在会产生错误 我正在寻找一种方法来忽略数据验证规则并插入数据而不更改已设置的数据验证规则 我只想忽略应用程序脚本错误 您在单元格 U4
  • 创建无模式消息框

    如何创建一个无模式消息框 我是否必须创建自己的 Windows 窗体类并使用它 如果是这样 是否有一种简单的方法来添加警告图标 而不是插入我自己的图像 并根据文本量调整大小 如果您需要一个在代码继续在后台运行时自动显示的消息框 该框仍然是模
  • ActiveRecord 迁移后的括号 [5.1] 是什么?它是如何工作的? [复制]

    这个问题在这里已经有答案了 使用生成新迁移时bin rails g migration CreateUser第一行如下所示 class CreateUser lt ActiveRecord Migration 5 1 什么是 5 1 代表什
  • PHPUnit:如何测试调用不同文件中声明的另一个函数的方法

    我正在尝试使用 PHPUnit 测试一个方法 它调用另一个函数 独立功能 无类 它驻留在不同的文件中 它做了一些很好的计算并返回一个对象 这是我实际的主要代码 class CreateRecords public function crea
  • 自定义错误消息在 ASP.NET MVC 4 中未翻译

    我想翻译验证消息 字段日期必须是日期 我已将以下键添加到 Global asax 的 Application Start 中 ClientDataTypeModelValidatorProvider ResourceClassKey Mod
  • 汇编指令陷阱有什么作用?

    当程序需要时 程序通常会发出软件陷阱 由操作系统提供服务 通用异常处理程序 操作系统确定陷阱的原因并做出响应 适当地 汇编指令 trap 和 BASIC 中的 TRAP 指令一样吗 答案似乎是肯定的 你能接受还是拒绝我的结论 不中断 的代码