Relative Content

Tag Archive for c++assemblyx86-64

Loading 64 bit mode from C code in 32 bit mode

I tried to use in C “extern void (function_name)” then call that function in my C code. It got to the assembly code that i used the extern on. Problem was it setted up 64 bit mode but when it needed to jump to the long mode it failed. All code is compiled right and other stuff is all correct, only problem is with the jmp

Loading 64 bit mode from C code in 32 bit mode

I tried to use in C “extern void (function_name)” then call that function in my C code. It got to the assembly code that i used the extern on. Problem was it setted up 64 bit mode but when it needed to jump to the long mode it failed. All code is compiled right and other stuff is all correct, only problem is with the jmp

Loading 64 bit mode from C code in 32 bit mode

I tried to use in C “extern void (function_name)” then call that function in my C code. It got to the assembly code that i used the extern on. Problem was it setted up 64 bit mode but when it needed to jump to the long mode it failed. All code is compiled right and other stuff is all correct, only problem is with the jmp

x86 Linux calling convention

According to the Linux x86 calling convention, certain register states are saved by the caller on the stack frame and certain registers by the callee. Some of the generated assembly from clang for C that I have seen explicitly does some of the push and pop. But if I am hand writing assembly, is the application of calling convention implicit of do I as a programmer have to make sure to abide it?