汇编语言(asm)编程问题。请务必使用您正在使用的处理器和/或指令集以及汇编程序。警告:对于.NET程序集,请改用标签[.net-assembly]。对于Java ASM,请改用标签[java-bytecode-asm]。
我一直在用汇编语言开发这个计算器,但我不知道我做错了什么。它输出的是第一个字符串,但我认为此后它不会得到我的输入。 我将附上代码,以便...
我正在 mars 4.5 上进行 mips 编程。这是示例代码: 。数据 一半:.float 0.1 。文本 l.s $f12,一半 li $v0, 2 系统调用 我的目的是打印数字 0.1,a...
为什么按值获取 std::unique_ptr 的函数不调用 gcc/clang 中的析构函数?
查看以下简单 C++ 函数的汇编输出: #包括 int square(std::unique_ptr num) { 返回 *num * *num; } Gcc 和 clang 发出以下内容
我对装配非常陌生,我正在尝试致电: /bin/bash -c“回显你好;ls -la” 我将“/bin/bash”命令存储为字符串,并将其地址存储在 RBX 和 RDI 中。 RAX 为 59
我想计算单词的长度,但有错误。我不明白为什么。 int new_strlen(字符* 字) { int 长度 = 0; __asm__(“mov ecx,100 ” ...
你能告诉我如何使这段代码能够看到C:驱动器并正常工作吗? 包括 \masm64\include64\masm64rt.inc 。数据 BS 设备 128 Fname BYTE "C:\",0 ; ms1 db“可用空间...
汇编中的 MOVZX (NASM) - 当未指定源大小且目标为 16 位时,它如何选择源大小?
我对下面示例中 movzx 的行为感到有点困惑。 (请注意,我假设我的代码示例中使用的 print_int 函数有效,问题不在那里,而是在我的
大家好,堆栈溢出者, 我准备创建一个程序,当主队在足球模拟器 FIFA 19 中实际进球时播放主队进球赞歌。 我知道没有开放的 API...
为什么MIPS中的堆栈指针通常从0x7FFFFFFC开始,而不是从0x80000000开始?
根据 Patterson & Hennessy 的《计算机组织与设计》(MIPS 版), 堆栈指针 $sp 通常初始化为 0x7FFFFFFC。 堆栈指针 $sp 始终指向 ...
为什么MIPS堆栈基址是0x7ffffffc而不是0x80000000
为什么MIPS堆栈基址是0x7ffffffc而不是0x80000000? 如果我理解正确的话,堆栈指针指的是放置在堆栈上的最后一项。那么,如果是这样的话,那是不是意味着……
.型号小 .堆栈100 。数据 号码 DW 54 。代码 主程序 MOV AX,@数据 MOV DS,AX MOV 斧头,数字 MOV BX,1 莫夫CX,0 尽管_: DIV BX CMP DX,0 杰检查 MOV 斧头,数字 公司BX CMP BX,AX JL WHI...
我不太确定如何简洁地提出这个问题,所以如果已经提出并回答了这个问题,我深表歉意。 我正在使用 32 位伪寄存器访问外设 F 的 ARM 平台...
我正在为 Raspberry Pi 3B 开发一个简单的内核,旨在在所有四个内核上运行基本任务。然而,似乎只有主核心在运行 kernel_init,而其他核心从未运行过...
我无法在我编写的程序中找到错误所在。 我需要在输入 1240 时打印出来。 给我 4 个十六进制数字:1240 1 1 美元商品 1 件 2 美元商品 1 件 3 美元商品 0 4 美元商品 0 $5 我...
如何修复“boot.asm:21:错误:符号‘puts.mpmp’未定义”
这是我的代码 组织0x7C00 位 16 %定义ENDL 0x0D,0x0A 开始: 跳转主要 把: 推斯 推斧 。环形: 洛兹布 或阿尔,阿尔 jz.完成 移动 bh, 0 整数 0x10 跳转.mpmp 。完毕: 流行斧头 流行斯 雷特 主要的: ...
我面临着关于 8086 汇编语言中的阿姆斯特朗数字的问题。该代码在 0 到 9 的范围内工作,但我希望它是 3 位数字
.型号小 .stack 100h 。数据 msg1 db "请输入一个三位数:$" msg2 db“阿姆斯特朗号!” msg3 db“不是阿姆斯特朗数字!” notValid db“请输入 3-d...
我正在编写一个机器代码程序,用于在 64 位 Linux 中将字符串打印到终端。这是我的代码: 00000000: 7f45 4c46 0201 0103 0000 0000 0000 0000 .ELF............ 00000010: 0200 3e00 0100 0...
记住 x86-64 System V arg 寄存器顺序的最佳方法是什么?
我经常忘记系统调用中每个参数需要使用的寄存器,每次我忘记时我都会访问这个问题。 整数/指针参数到 x86_64 用户空间函数的正确顺序...
我知道有几种方法可以在汇编中返回值, 在 rax 寄存器中 在xmm0、xmm1寄存器中 在堆栈中(类似于 C++ 中的返回优化),有时使用 rdi 寄存器来保存...
我有一个变量 temp2,它被分配为 00001101(13),并且我已将 00001010(10) 移至 wreg。 (顺便说一句,所有这些寄存器都会在 MPLAB x 调试器会话中逐步检查。)然后,我执行