assembly

M

miXer

Gost
zdravo svima !
imam jedan problem u vezi programiranja asemblera, u skoli ga radimo i dobili smo zadatak da napravimo program da kad uneses dva imena razdvojena sa minusom, kao jednako mora da izadje ime koje prvo pocinje u abecedi, znaci svako slovo proverava, npr. ana - aco => aco (zato sto je c pre n, i tako dalje) pocetnik sam u programiranu asemblera, a profesor trazi puno, a ne zna da objasni ni sam dobro.
e sad ako ma neko dobre volje, ko se razume u assemblere, neka napise nesto na ovu temu
unapred hvala
 
e evo uspeo sam da napravim neki program, ali samo sa jednim slovom, ako neko ima vremena da prekontrolise i doda sta treba, bio bih veoma zahvalan. treba da bude sortiranje najmanje 4 slova.
program je na nemackom, ako nesto ne razumete pitajte ili pogledajte u recniku na krstarici. pozdrav
leerzeichen data 30h

jmp init

org 100h

init:
mov tmod,00100000b
mov th1,#fdh
mov scon,#01010000b
setb tr1
mov leerzeichen,#5h
mov dptr,#gruss
lcall string_out
main:
lcall char_in
lcall schreiben
lcall cr_lf
jmp main

;------------schreiben--------------

schreiben:
push acc
push acc
lcall spaceout
pop acc
lcall char_out
lcall spaceout
lcall spaceout
lcall spaceout
pop acc
lcall hex_byte_out
ret
;------------------------------------

;----------spaceout------------------

spaceout:
mov r7,leerzeichen
mov a,#20h
go:
lcall char_out
djnz r7,go
ret
;-------------------------------------

;------------CR_LF--------------------

cr_lf:
mov a,#0dh
lcall char_out
mov a,#0ah
lcall char_out
ret
;--------------------------------------

;----------char_out--------------------

char_out:
mov sbuf,a
jnb ti,$
clr ti
ret
;----------------------------------------

;---------char_in------------------------
char_in:
jnb ri,$
mov a,sbuf
clr,ri
ret
;-----------------------------------------

;-------------string_out------------------
string_out:
mov a,#0h
ausgeben:
push acc
movc,@a+dptr
cjne a,#80h,schreib
pop acc
ret
schreib:
mov sbuf,a
warte:
jnb ti,warte
clr ti
pop acc
inc a
jmp ausgeben
;----------------------------------------

;-----------hex_byte_out-----------------

hex_byte_out:
push acc
swap a
anl a,#00001111b
mov dptr,Tabelle
movc a,@a+dptr
mov sbuf,a
jnb ti,$
clr ti
pop acc
anl a,#00001111b
movc a,@a+dptr
mov sbuf,a
jnb ti,$
clr ti
ret
Tabelle:
DB '0123456789ABCDEF';
;----------------------------------------

gruss:
DB 'Ein- Ausgabeübung: ASCI-Tabelle',0dh,0ah
DB '--------------------------------',0dh,oah
DB ' Zeichen ASCI-WERT ',odh,0ah,0dh,0ah,80h
end
 

Back
Top