Witam, mam do zrobienia zadanie w assemblerze, polegające na porównaniu sum kodów ASCII dwóch łańcuchów znaków. Nie jestem zbyt dobry w assemblerze, udało mi się na razie zrobić program który porównuje długości dwóch łańcuchów znaków. Nie wiem jak zrobić sumowanie tych kodów ascii w danym łańcuchu.
To co udało mi się zrobić:
ORG 100H
START:
mov ah, 9 ;wyswietlenie tekstu
mov dx, tekst1
int 21h
mov ah, 0ah ;pobieranie lancucha znakow z klawiatury
mov dx, lancuch1 ;zapisanie do zmiennej
int 21h
mov ah,2
mov dl,10
int 21h
mov ah, 9 ;wyswietlenie tekstu
mov dx, tekst2
int 21h
mov ah, 0ah ;pobieranie lancucha znakow z klawiatury
mov dx, lancuch2 ;zapisanie do zmiennej
int 21h
mov bh, [lancuch1+1]
mov bl, [lancuch2+1]
cmp bh,bl
je rowne
jl wiekszy2
jg wiekszy1
rowne:
mov ah,9
mov dx, tekst3
jmp wypisz
ret
wiekszy2:
mov ah,9
mov dx, tekst5
jmp wypisz
ret
wiekszy1:
mov ah,9
mov dx, tekst4
jmp wypisz
;koniec
wypisz:
int 21h
mov ah,9
mov dx, tekst6
int 21h
mov ah, 1 ; wczytuje dowolny klawisz i konczy program
int 21h
cmp al,13 ; jesli znak jest enterem, program wraca na start
jnz START
mov ax, 4c00h
int 21h
tekst1 db 13,10,"Podaj 1 ciag znakow - $"
tekst2 db 13,10,"Podaj 2 ciag znakow - $"
tekst3 db 13,10,"Lancuchy znakow sa tej samej dlugosci.$",13,10,
tekst4 db 13,10,"1 Lancuch jest dluzszy od 2. $",13,10,
tekst5 db 13,10, "2 Lancuch jest dluzszy od 1. $",13,10,
tekst6 db 13,10, "dowolny znak- jeszcze raz / enter- koniec $$$"
lancuch1 db 20
db 0
times 22 db "$"
lancuch2 db 20
db 0
times 22 db "$"
<code class="asm">
- msm