深入理解程式設計使用linux組合語言(一)

2021-10-04 17:35:36 字數 383 閱讀 3104

在編譯執行第四章power函式遇到報錯,報錯資訊invalid $sp address: 0xffffdf2c,通過gdb定位到程式=> 0x40007e : mov ebx,dword ptr [rbp+0x8],不知道原因是啥,查資料和琢磨了半天,終於想到可能是32位程式編譯的問題,然後通過新增32位程式編譯引數,最終程式在64位的ubuntu上執行起來。這裡記錄一下問題解決過程和方法。

makefile:

power: power.o

ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o power power.o

power.o: power.s

as -32 --gstabs power.s -o power.o

彙編 scanf scanf深入理解

scanf 是c語言中的乙個輸出函式。與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上 include 在有一些實現中,printf函式與scanf函式在使用時可以不使用預編譯命令 include 它是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到...

彙編學習(6)深入理解little

菜雞初學彙編,總結下 little endian。這個破東西也困擾我好久,也算終於搞明白了。little endian 簡單來說即低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。首先,明確一點,最小的單元都是位元組 資料在記憶體中的存放是以位元組為單位的。位元組內的內容沒有所謂的...

深入理解網路程式設計(二)

深入理解網路程式設計 二 1 socket程式設計 serversocket 方法 socket accept 如果接收到乙個客戶端socket的連線請求,該方法將返回乙個與連線客戶端socket對應的socket serversocket int port serversocket int por...