zamiana z hex na dec 16b


.MODEL SMALL
JUMPS ;eliminuje problem relatywnych skokow
.STACK 100h

DANE SEGMENT
;txt1 db 13,10,'podaj liczbe HEX: $'
;txt2 db 13,10,'Liczba $'
txt1 db 13,10,'$'
txt2 db 13,10,'$'
znak dw 0
bufor dw 0
DANE ENDS

STS SEGMENT
STS ENDS

PROG SEGMENT
ASSUME DS: DANE, SS: STS, CS: PROG
;----------------------------------------------------
start:
;zainicjowanie segmentu dane
mov ax,seg DANE
mov ds,ax
;koniec inicjacji dane

;wysw txt
mov ah,9
mov dx,offset txt1
int 21h

wprowadz:
mov znak,0000h
mov cl,00h ;licznik ilosci wprowadzanych znakow
;-----------------------------------------------------
;czekanie na klawisz 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

wprowadz_czytaj:
mov ah,8
int 21h

;czy nie koniec
cmp cl,4
je koniec
;--------------------------------------------------
wprowadz_zero:
cmp al,'0'
jne wprowadz_jeden

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
;wyswietlenie
mov dl,'0'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;---------------------------------------------------
wprowadz_jeden:
cmp al,'1'
jne wprowadz_dwa

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
inc znak

;wyswietlenie
mov dl,'1'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_dwa:
cmp al,'2'
jne wprowadz_trzy

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,2

;wyswietlenie
mov dl,'2'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_trzy:
cmp al,'3'
jne wprowadz_cztery

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,3

;wyswietlenie
mov dl,'3'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_cztery:
cmp al,'4'
jne wprowadz_piec

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,4

;wyswietlenie
mov dl,'4'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_piec:
cmp al,'5'
jne wprowadz_szesc

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,5

;wyswietlenie
mov dl,'5'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_szesc:
cmp al,'6'
jne wprowadz_siedem

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,6

;wyswietlenie
mov dl,'6'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_siedem:
cmp al,'7'
jne wprowadz_osiem

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,7

;wyswietlenie
mov dl,'7'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_osiem:
cmp al,'8'
jne wprowadz_dziewiec

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,8

;wyswietlenie
mov dl,'8'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_dziewiec:
cmp al,'9'
jne wprowadz_a

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,9

;wyswietlenie
mov dl,'9'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_a:
cmp al,'a'
jne wprowadz_b

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,10

;wyswietlenie
mov dl,'A'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_b:
cmp al,'b'
jne wprowadz_c

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,11

;wyswietlenie
mov dl,'B'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_c:
cmp al,'c'
jne wprowadz_d

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,12

;wyswietlenie
mov dl,'C'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_d:
cmp al,'d'
jne wprowadz_e

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,13

;wyswietlenie
mov dl,'D'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_e:
cmp al,'e'
jne wprowadz_f

;uwzglednianie
shl znak,1
shl znak,1
shl znak,1
shl znak,1
add znak,14

;wyswietlenie
mov dl,'E'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------
wprowadz_f:
cmp al,'f'
jne wprowadz_czytaj

;uwzglednianie
shl znak,1
inc znak
shl znak,1
inc znak
shl znak,1
inc znak
shl znak,1
inc znak

;wyswietlenie
mov dl,'F'
mov ah,2
int 21h
inc cl
jmp wprowadz_czytaj
;----------------------------------------------------


koniec:
mov ah,9
mov dx,offset txt2
int 21h
;----------------------
mov ax,znak
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

mov dx,0
mov ah,9
mov dx,bx
int 21h


;----------------------
mov ah,4ch
int 21h
mov ax,9
mov dx, bx
int 21h
PROG ENDS
END start


Wyszukiwarka

Podobne podstrony:
A HEX na ASCII
zamiana R12 na R134a
A Kajt na hex
zamiana na bw
PROGRAM zmien rozszerzenie na hex
HEX DEC
LinuxMagazine Zamiana zdjęcia kolorowego na czarno białe w programie GIMP
Zamiana liczb z systemu dziesiętnego na dwójkowy i odwrotnie
Wniosek o zamianę kary grzywny na pracę społecznie użyteczną
Zamiana wskazówek CorsaB na świecące
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
PKC pytania na egzamin
Prezentacja ekonomia instytucjonalna na Moodle

więcej podobnych podstron