HEX DEC


dane SEGMENT PUBLIC USE16'DATA'
Podaj db ' Podaj liczbe w zapisie HEX: $'
nowalinia db 10,13,'$'
tmp dw 0
buf db 5, 0, 0, 0, 0, 0, 0 ;bufor 5 znaków [max ilosc][ilosc wpisanych][..wpisane..]
dane ENDS


sts segment STACK USE16 'STACK'
db 1024 dup(0)
sts ENDS


program SEGMENT PUBLIC USE16 'CODE'
assume cs:program, ds:dane, ss:sts

;procedura zwracajaca wartosc znaku w al (wartosc w ax)
Wartosc PROC
cmp al, '0' ; pierwsze wzgledem drugiego
jb ZlyZnak ; al<'0'
cmp al, ':'
ja Litera ; al>=':'

sub al, 48
jmp KoniecWartosc

Litera:
cmp al, 'A' ; pierwsze wzgledem drugiego
jb ZlyZnak ; al<'A'
cmp al, '['
ja LiteraMala ; al>='['

sub al, 55
jmp KoniecWartosc

LiteraMala:
cmp al, 'a' ; pierwsze wzgledem drugiego
jb ZlyZnak ; al<'a'
cmp al, '{'
ja ZlyZnak ; al>='{'

sub al, 87
jmp KoniecWartosc

ZlyZnak:
mov al, 0

KoniecWartosc:
mov ah, 0
ret
Wartosc ENDP


;procedura obliczajaca wartosc wpisana do
Zamiana PROC

mov bh, 0
mov bl, al
mov di, offset buf[bx]

mov al, buf[2] ;al = kod pierwszego znaku bufora
call Wartosc ;w ax jest wartosc znaku pierwszego
shl ax, 12 ;przesuniecie bitow ax o 12 pozycji w lewo
mov tmp, ax ;przeniesienie bitów do tmp

mov al, buf[3] ;al = kod drugiego znaku bufora
call Wartosc ;w ax jest wartosc znaku pierwszego
shl ax, 8 ;przesuniecie bitow ax o 12 pozycji w lewo
or tmp, ax ;wkomponowanie bitów do tmp

mov al, buf[4] ;al = kod drugiego znaku bufora
call Wartosc ;w ax jest wartosc znaku pierwszego
shl ax, 4 ;przesuniecie bitow ax o 12 pozycji w lewo
or tmp, ax ;wkomponowanie bitów do tmp

mov al, buf[5] ;al = kod drugiego znaku bufora
call Wartosc ;w ax jest wartosc znaku pierwszego
or tmp, ax ;wkomponowanie bitów do tmp

ret
Zamiana ENDP




start:
mov dx, seg dane ;ax = segment wszystkich zmiennych
mov ds, dx ;ds = ax

mov ah, 9
mov dx, offset Podaj ;w dx musi by† offset tekstu, (offset nazwa_zmiennej)
int 21h


mov ah, 0Ah
mov dx, offset buf
int 21h ;pobierz tekst do buf

call Zamiana
mov ax, tmp ;w ax wartość przeliczona



mov al, 07h ; czekaj na klawisz
mov ah,0Ch
int 21h


mov ah,4ch
int 21h
program ENDS

end start

Wyszukiwarka

Podobne podstrony:
zamiana z hex na dec 16b
2015 06 23 Dec nr 231 MON 12 Szczecińska DZ odznaka pamiątkowa
2015 06 11 Dec nr 204 MON ŻW Lublin odznaka pamiątkowa
2014 12 23 Dec nr 508 MON 1 BPZ 17 Wlkp BZ odznaki
option force hex style colors
A HEX na ASCII
hex
H P Lovecraft The Other Gods Dec 1920
Nadajnik Ukf 300mW Hex
A Kajt na hex
Kohlmann Evan The AirFrance hijacking (Dec 1994)
2015 05 25 Dec nr 179 MON WCEO nadanie imienia
[PIC] 230V Ceiling Fan Timer 5318?ntimer HEX
WRITE HEX File Format
dekoder bin dec

więcej podobnych podstron