abc Asembler - elektronski priručnik
|
%eax |
Ime |
%ebx |
%ecx |
%edx |
%esx |
%edi |
1 |
sys_exit |
int |
- |
- |
- |
- |
2 |
sys_fork |
struct pt_regs |
- |
- |
- |
- |
3 |
sys_read |
unsigned int |
char * |
size_t |
- |
- |
4 |
sys_write |
unsigned int |
const char * |
size_t |
- |
- |
5 |
sys_open |
const char * |
int |
int |
- |
- |
6 |
sys_close |
unsigned int |
- |
- |
- |
- |
Primjer:
Sljedeći primjer koda čita broj sa tastature i prikazuje ga na ekranu:
section .data ;Data segment
userMsg db 'Unesite broj: ' ;Ask the user to enter a number
lenUserMsg equ $-userMsg ;The length of the message
dispMsg db 'Uneseni broj je: '
lenDispMsg equ $-dispMsg
section .bss ;Uninitialized data
num resb 5
section .text ;Code Segment
global _start
_start:
;User prompt
mov eax, 4
mov ebx, 1
mov ecx, userMsg
mov edx, lenUserMsg
int 80h
;Read and store the user input
mov eax, 3
mov ebx, 2
mov ecx, num
mov edx, 5 ;5 bytes (numeric, 1 for sign) of that information
int 80h
;Output the message 'Uneseni broj je: '
mov eax, 4
mov ebx, 1
mov ecx, dispMsg
mov edx, lenDispMsg
int 80h
;Output the number entered
mov eax, 4
mov ebx, 1
mov ecx, num
mov edx, 5
int 80h
; Exit code
mov eax, 1
mov ebx, 0
int 80h
Kada se gore navedeni kod kompajlira i izvrši, on će proizvesti sljedeći rezultat:
Unesite broj:
1234
Uneseni broj je:1234
Segmentni registri < Index > Načini adresiranja
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |