Jak wyświetlić zawartość rejestru.

Dryobates

Kod do wyświetlania liczby z rejestru 16-bitowego (kod w FASM):

;konwersja liczby na tekst z ax na tekst
;ax - liczba do wyświetlenia
;bx - wskaźnik do bufora, gdzie ma być umieszczony wynik

IntToStr:
  add bx, 4             ;ustawiamy się na koniec bufora
  mov cx, 10            ;będziemy dzielić przez 10, aby otrzymać poszczególne cyfry
konwertuj:
  xor dx, dx
  div cx                ; dx:ax / cx
  or dl, 30h            ;zamieniamy cyfrę na jej odpowiedni kod ASCII
  mov [bx], dl          ;umieść znak w buforze
  dec bx                ;przesuń wskaźnik w buforze
  test ax, ax           ;jeżeli ax <> 0
  jnz konwertuj         ;to wyciągaj kolejne cyfry
ret

A to przykład użycia:
org 100h
use16

  mov ax, 12345         ;załadujmy liczbę do wyświetlenia
  mov bx, buf           ;ustawmy wskaźnik do bufora na tekst
  call IntToStr
  mov ah, 09h
  mov dx, buf
  int 21h
  mov ah, 01h           ;zatrzymajmy się na chwilę, żeby zobaczyć wynik
  int 21h
ret

buf: times 5 db 20h, '$'
FAQ

2 komentarzy

czemu to nie działa pod biosem ?

Super! Czegoś takiego potrzebuję, a sam nie umiałem wykombinować