abc Asembler - elektronski priručnik
XIV dio Brojevi
Brojevi
Numerički podaci se uobičajeno predstavljaju u binarnom sistemu. Aritmetičke instrukcije operišu sa binarnim podacima. Kada se brojevi prikazuju na ekranu ili unose sa tastature, oni su u ASCII formi.
Do sada, mi smo konvertovali ove ulazne podatke u ASCII formi u binarne za aritmetičke kalkulacije, a onda konvertovali rezultat natrag u ASCII. Sljedeći kod to pokazuje:
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
mov eax, '3'
sub eax, '0'
mov ebx, '4'
sub ebx, '0'
add eax, ebx
add eax, '0'
mov [sum], eax
mov ecx, msg
mov edx, len
mov ebx, 1 ;file descriptor (stdout)
mov eax, 4 ;system call number (sys_write)
int 0x80 ;call kernel
mov ecx, sum
mov edx, 1
mov ebx, 1 ;file descriptor (stdout)
mov eax, 4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax, 1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db "Suma je:", 0xA, 0xD
len equ $ - msg
segment .bss
sum resb 1
Kada se gore navedeni kod kompajlira i izvrši, on će proizvesti sljedeći rezultat:
Suma je:
7
Ovakve konverzije, međutim, imaju svoju cijenu, pa programiranje u asemblerskom jeziku dozvoljava procesiranje brojeva na efikasniji način, u binarnoj formi. Decimalni brojevi se mogu predstaviti u dve forme:
- ASCII forma
- BCD ili binarno kodirana decimalna (Binary Coded Decimal) forma
Petlje < Index > ASCII reprezentacija
|
 |