?? stabs-elf.asm
字號:
; test source file for assembling to ELF; copied from cofftest.asm; s/_//g s/coff/elf/g; build with (under Linux, for example):; yasm -f elf elftest.asm; gcc -o elftest elftest.c elftest.o; This file should test the following:; [1] Define and export a global text-section symbol; [2] Define and export a global data-section symbol; [3] Define and export a global BSS-section symbol; [4] Define a non-global text-section symbol; [5] Define a non-global data-section symbol; [6] Define a non-global BSS-section symbol; [7] Define a COMMON symbol; [8] Define a NASM local label; [9] Reference a NASM local label; [10] Import an external symbol; [11] Make a PC-relative call to an external symbol; [12] Reference a text-section symbol in the text section; [13] Reference a data-section symbol in the text section; [14] Reference a BSS-section symbol in the text section; [15] Reference a text-section symbol in the data section; [16] Reference a data-section symbol in the data section; [17] Reference a BSS-section symbol in the data section[BITS 32][GLOBAL lrotate] ; [1][GLOBAL greet] ; [1][GLOBAL asmstr] ; [2][GLOBAL textptr] ; [2][GLOBAL selfptr] ; [2][GLOBAL integer] ; [3][EXTERN printf] ; [10][COMMON commvar 4] ; [7][SECTION .text]; prototype: long lrotate(long x, int num);lrotate: ; [1] push ebp mov ebp,esp mov eax,[ebp+8] mov ecx,[ebp+12].label rol eax,1 ; [4] [8] loop .label ; [9] [12] mov esp,ebp pop ebp ret; prototype: void greet(void);greet mov eax,[integer] ; [14] inc eax mov [localint],eax ; [14] push dword [commvar] mov eax,[localptr] ; [13] push dword [eax] push dword [integer] ; [1] [14] push dword printfstr ; [13] call printf ; [11] add esp,16 ret[SECTION .data]; a stringasmstr db 'hello, world', 0 ; [2]; a string for Printfprintfstr db "integer==%d, localint==%d, commvar=%d" db 10, 0; some pointerslocalptr dd localint ; [5] [17]textptr dd greet ; [15]selfptr dd selfptr ; [16][SECTION .bss]; an integerinteger resd 1 ; [3]; a local integerlocalint resd 1 ; [6]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -