Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei Programm mit Assembler / debug
Hi Leute!
Ihr seid meine letzte Hoffnung!
Muss für mein Studium ein Programm in Assembler mit dem Dos-Tool debug schreiben. Es geht in etwa um folgendes:
Text soll ausgegeben werden und dem User mitteilen, das er zwischen zwei "Codierungsvariaten" wählen soll. Dann soll der User seinen Text eingeben und das Ende der Eingabe mit einem $-Zeichen bestätigen. Nach zwei harten Returns soll der Text Codiert auf dem Bildschirm erscheinen...
Codierung erfolg durch verschieben der ASCII-Zeichen um 2 nach oben bzw. unten.
Und ich hab keine Ahnung... :(
Kennt jemand evtl. eine Webseite wo sowas vernünftig erklärt ist?
Thx & ciao axcel
Felix Kaiser
19.06.2002, 02:13
WebSeiten sind das rar, wenn du Glück hast findest du mit Google oder MetaGar ein ähnliches Referat auf irgendeiner Uniseite. Prinzipiell könnte ichs lösen, aber nicht mit DEBUG, keine Ahnung wie man mit dem Teil umgeht, ich find scheiße :) Einen fertigen Assemblerquellcode könnte ich schreiben ... bzw. dabei helfen, aber das würde dir wohl nix nützen? :(
Hi!
Original geschrieben von Felix Kaiser
aber nicht mit DEBUG, keine Ahnung wie man mit dem Teil umgeht, ich find scheiße :)
Danke, seh ich genauso! :D
Einen fertigen Assemblerquellcode könnte ich schreiben ... bzw. dabei helfen, aber das würde dir wohl nix nützen? :(
Das würde mir schonmal deutlich nützen! Hab ich wenigstens etwas an dem ich mich langhangeln kann...
DANKE dir für das Angebot
ciao axcel ;)
Felix Kaiser
19.06.2002, 15:27
Eigentlich mache ich sowas nicht, kompletten Source schreiben, aber bei dir mach ich mal eine Ausnahme und zwar nur aus dem Grund, dass es mal wieder einwenig leichtes Assemblertraining ist. Auch wenns schrottbillig ist :mauer:
.model small
.stack 800h
.code
.386p
entry proc near
push cs
pop ds
call DosMain
mov ax,4C00h
int 21h
entry endp
CType db 0
TextBuf db 60 dup (?)
msg1 db 'Kodierungstyp? [1,2] $'
msg2 db 13,10,'Geben Sie nun den Text ein: $'
msg3 db 13,10,'Kodierte Eingabe: $'
DosMain proc near
push offset msg1
call StdOut ; Meldung ausgeben
KeyIn1: call ReadKey ; Auf Eingabe warten
cmp al,'1'
je short j1
cmp al,'2'
jne short KeyIn1
inc [CType]
j1: mov ah,0Eh
int 10h ; Eingabe auf Bildschirm ausgeben
push offset msg2
call StdOut ; Meldung ausgeben
push 60
push offset TextBuf
call StdIn ; Texteingabe via STDIN
mov si,offset TextBuf
mov bx,ax
mov byte ptr [si+bx],'$'
push si
call Crypt
push offset msg3
call StdOut
push offset TextBuf
call StdOut
ret
DosMain endp
StdOut proc near _ofs:word
enter 0,1
mov ah,9
mov dx,_ofs
int 21h
leave
ret 2
StdOut endp
_StdIn db 'CON',0
StdIn proc near _ofs:word, _maxlen:word
enter 0,1
mov ax,3D00h
mov dx,offset _StdIn
int 21h
mov bx,ax
mov ah,3Fh
mov cx,_maxlen
mov dx,_ofs
int 21h
leave
ret 4
StdIn endp
ReadKey proc near
xor ah,ah
int 16h
ret
ReadKey endp
Crypt proc near _ofs:word
enter 0,1
mov si,_ofs
cld
cl1: lodsb
cmp al,'$'
je short cj1
cmp al,' '
jb short cl1
push ax
cmp [CType],1
je short cj2
call Crypt1
jmp short cj3
cj2: call Crypt2
cj3: mov bx,0FFFFh
mov [si+bx],al
jmp short cl1
cj1: leave
ret 2
Crypt endp
Crypt1 proc near _value:byte
enter 0,1
mov al,_value
add al,2
leave
ret 2
Crypt1 endp
Crypt2 proc near _value:byte
enter 0,1
mov al,_value
sub al,2
leave
ret 2
Crypt2 endp
end entry
Mit Turbo Assembler kein Problem das zu compilieren und zu linken.
Ich danke dir vielmals!
Das du normalerweise keinen kompletten Code schreibst ist schon klar und habe ich auch nicht erwartet... Freue mich aber über die Ausnahme um so mehr!!!
Thx axcel
Nukacola
20.06.2002, 21:35
Mit Debug wird der source aber nicht klappen.
Uberings geht das mit dem A-Kommando von debug
kleines beispiel:
debug.exe
-a
????:???? hier dann den code hin
alles mühsam abtippen oder mit trick
datei erstellen bsp test.asm
a
code
r
100 hier die anzahl der zu compilierenden bytes angeben
n test.com
w
q
und debug aufrufen mit debug < test.asm >test.lst
naja und nur 8086 befehle benutzen
bye
Messiah_of_Death
25.06.2002, 23:26
wua.. Debug ..das ding is gefährlich
ich hab mal damit rumgespielt und mir mein ganzes DOS früher zerschossen...... (schrottding hat auch keine "Kindersicherung")
?! muss man Debug können für ein Studium ??! :eek:
Felix Kaiser
26.06.2002, 00:29
Wenn ja ist Studium dumm, weil ein solches Tool braucht heutzutage keine Sau mehr, außer halt im Studium vielleicht :D
Ja - man muss debug können, aber nur in den Grundzügen! Studiengang nennt sich Mechatronik und im Fach Computertechnik gehört auch eine Aufgabe Assembler mit debug dazu...
ciao axcel ;)
Nukacola
27.06.2002, 01:55
upps fehler!!! die zeile
r
das muß
rcx
heißen..
verdammt..
aber wie schon gesagt wer benutzt noch debug ???
kenne mich da nur aus weil ich früher mein asm proggis
immer mit dem sid86 von dr getestet habe..
bye
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.