ABC*_*DEF 5 assembly nasm insight
我在64位Mac-to-Linux计算机上使用Insight调试器.
它告诉我mov ebx, 1739
EBX 中的结果是0xcc00cccb.EAX按预期获得0x1bf,但乘法结果也很奇怪(当它应该适合32位寄存器时).
global _start
_start:
nop
mov eax, 447
mov ebx, 1739
mul ebx
nop
Run Code Online (Sandbox Code Playgroud)
请有人告诉我发生了什么事.我甚至无法声明一个databyte字符串,如果它没有像在任何mov或mul指令生成的任何十六进制处将高阶半字节的几个c添加到最先声明的寄存器那样.我使用NASM汇编程序.
编辑:我组装和链接的两个终端条目是:
nasm -f elf -g -F stabs test.asm -l test.lst
ld -o test test.o -melf_i386
Run Code Online (Sandbox Code Playgroud)
事实证明,对于任何可能运行 Ubuntu 16.04 LTS 的人来说,如果您尝试通过博客文章中建议的方法“恢复”已从该 Ubuntu 的默认应用程序集中删除的 Insight:http://
www .dalfonso.co/blog/2016/04/23/setting-insight-debugger-on-ubuntu-16-04-lts/,您实际上不会获得您想要的应用程序。它有缺失的部分。
从表面上(界面)来看,这似乎可行,但它可能只是进行拼凑,而不能完全重新生成应用程序。
真正的原因与我的计算机某处的内部故障有关,由于未知的原因,如果保存程序集文件的文件夹名称被命名为“程序集”,则无法正确地将值分配给寄存器。