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