Insight debugger shows invalid values ​​in registers

I am using the Insight debugger on my 64-bit Mac-to-Linux computer.

This tells me that the result of mov ebx, 1739 is 0xcc00cccb in EBX. EAX gets 0x1bf as expected, but the result of the multiplication is also weird (when it should fit in a 32-bit register).

 global _start _start: nop mov eax, 447 mov ebx, 1739 mul ebx nop 

Please tell me what is going on. I could not even declare a database row without doing the same effect of adding multiple c in higher orders to any hex code created by any mov or mul command, depending on which register was declared first. I am using NASM assembler.

EDIT: My two terminal records for assembly and reference:

 nasm -f elf -g -F stabs test.asm -l test.lst ld -o test test.o -melf_i386 
+5
source share
1 answer

It turns out that for everyone who can work with Ubuntu 16.04 LTS, if you try to β€œreturn” Insight, which was removed from this set of applications by default Ubuntu, using the method suggested in the blog post: http: //www.dalfonso. co / blog / 2016/04/23 / setting-insight-debugger-on-ubuntu-16-04-lts / , you will not actually get the application you were hoping for. He has no fragments.

On the surface (interface), this may seem to work, but only a patchwork can be done that does not fully restore the application.

The real reason has everything that is connected with an internal malfunction of my computer somewhere, which for unknown reasons could not correctly assign values ​​to the registers if the name of the folder in which the assembly files are stored was called "assembly".

0
source

Source: https://habr.com/ru/post/1259876/


All Articles