x86

    1熱度

    1回答

    我已經開始學習NASM彙編器& RE。我已經得到了第一個問題是下一個(簡稱): 使用objconv實用我不能恢復反編譯的程序。 我的簡單的應用程序: #include <stdio.h> char* msg = "Hello World!"; int main(void) { printf("%s\r\n", msg); return 0; } 1)。第一步驟中,

    2熱度

    1回答

    對於娛樂,我正在學習GNU擴展程序集,使用帶有32位Linux目標的x86的AT & T語法。我剛剛花了最後三個小時編碼兩個可能的解決方案,以交換兩個整數變量a和b的值,我的解決方案都不能完全解決我的問題。首先,讓我們來看看我的TODO障礙在一些細節: int main() { int a = 2, b = 1; printf("a is %d, b is %d\n", a,

    3熱度

    1回答

    這是我的彙編程序add.s .globl add add: movl 4(%esp), %eax movl 8(%esp), %ebx addl %ebx, %eax ret 這是我的C程序。我正試圖從C程序中調用匯編程序。 #include <stdio.h> int add(int a, int b); int main() {

    -1熱度

    1回答

    我在x64上使用C++多線程。我想更好地理解數據總線。我想知道如果我嘗試從2個線程設置變量而沒有任何防範(無互斥鎖,CV,信號量和無原子)會發生什麼。數據總線依賴於什麼? 例如,如果我有變量: int32_t i; 如果我設置在不同的線程變量: 線程1: i =0x11223344; 線程2: i =0x44332211; 正如我知道針對x64數據總線是64位。所以變量i可以設置爲1條

    0熱度

    1回答

    我在學習彙編,它在某種程度上是有意義的,但我有一個問題。我有這個源文件hello.sfml: ; nasm -felf64 hello.asml && ld hello.o global _start section .text _start: ; write(1, message, 13) mov rax, 1 ; syscall 1 is w

    3熱度

    1回答

    多少的性能提升,如果有的話,可以從一個最近高端的Intel CPU重新排序的x64(x86-64的)指令得到。在極度危急的情況下值得一提嗎? 我也想知道關於通過改變寄存器的使用取得的成果的可能性/使用附加寄存器(如果免費),以允許在某些情況下,奇較長距離的代碼移動?

    0熱度

    2回答

    Employee STRUCT IdNum BYTE "000000000" ; 9 LastName BYTE 30 DUP(0) ; 30 ALIGN WORD ; 1 byte added Years WORD 30 ; 2 ALIGN DWORD ; 2 byte added SalaryHistory DWORD 0,0,0,

    2熱度

    1回答

    我嘗試添加幾個像素在一起,以便做羅嗦濾波器NASM。我已經設法添加三個像素,其值爲00 + d3 + d8(0 + 211 + 216)。當我嘗試添加一個像素,值爲0時,程序無法打印變量blurr的值。 更新: 似乎增加了可變總和產品可在完成三次,因爲如果我註釋掉另一個add,該值將在我的輸出文件打印。 blurrTopRow: ;from 0 - 251 there will be n

    3熱度

    1回答

    我以彙編(x86,linux)開始,只是爲了好玩。這是我的第一個小程序,它只是檢查,如果我通過一個參數通過命令行,如果沒有它打印一個消息,它後退出: section .text global _start _start: pop ebx ;argc dec ebx test ebx,1 jne print_string exit:

    -1熱度

    1回答

    我想編譯一個簡單的C程序(Win7 32bit,Mingw32 Shell和GCC 5.3.0)。 C代碼是這樣的: #include <stdio.h> #include <stdlib.h> #define _set_tssldt_desc(n,addr,type) \ __asm__ ("movw $104,%1\n\t" \ :\ :"a" (addr),\