You are not logged in.


OS-EntwicklerKevin

Stamm Clubber

  • "OS-EntwicklerKevin" started this thread

Posts: 375

Location: Hermsdorf

Occupation: IT

  • Send private message

1

Monday, December 17th 2007, 11:39pm

Hilfe bei Projekt 1 !!!!

Hallo COM,

ich mach gerade eine Ausbildung zum Informatiker und wir lernen gerade Assembler. Jetzt habe ich allerdings noch ein paar Fragen zu einigen Proejkten (wollte nicht alle in ein Thread stecken, weshalb ich für jedes Projekt einen seperaten Thread erstellt habe). Verwendet wird Vade als Editor.

Nun zum Projekt / Programm diesen Threads:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.MODEL small
.STACK 100h

.DATA

.CODE

  mov     ax,@data                      ; Initialisiert
  mov     ds,ax                         ; Daten
;-----
  mov ah,01h                            ;Summand1 eingeben (Ich)
  int 21h
  sub al,30h                            ;ASCII->Wert (Ich)
  mov bl,al                             ;Summand1 sichern (Ich)

  mov ah,02h                            ;"+" (Ich)
  mov dl,"+"
  int 21h

  mov ah,01h                            ;Summand2 eingeben (Ich)
  int 21h
  sub al,30h                            ;ASCII->Wert (Ich)
  add bl,al                             ;Addition (Ich) 

  mov ah,02h                            ;"=" (Ich)
  mov dl,"="
  int 21h
  					;HINWEIS: Ab hier komm ich nicht mehr mit. Hier müsste mir jede Zeile
					;Schritt für Schritt erklärt werden, sprich, für was ist der Befehl da, was macht
					;dieser und warum an dieser Stelle usw.
  mov al,bl
  xor ah,ah  
  aam                                   ;BCD-Korrektur (Lehrer) 
  mov cx,ax
  
  add cx,3030h                          ;Wert->ASCII (Lehrer) 
  mov ah,02h                            ;Zeichenausgabe (Lehrer) 
  mov dl,ch
  int 21h
  mov ah,02h                            ;Zeichenausgabe (Lehrer) 
  mov dl,cl
  int 21h

m1:
  mov ah,01h                            ;Warten auf Taste (Lehrer) 
  int 16h
  jz  M1

  mov ah,02h                            ;LF (Lehrer) 
  mov dl,0ah
  int 21h
  mov ah,02h                            ;CR (Lehrer) 
  mov dl,0dh
  int 21h
  
;-----
  mov     ah,4ch                        ; Beendet
  int     21h                           ; Programm
END


Mein Problem ist nur, dass ich nicht weiß, was machnche Befehle bedeuten bzw. warum diese an dieser und dieser Stelle kommen. Und was macht dieses Programm eigentlich, sprich welches Zweck / welche Funktion?

Manche Befehle habe ich einfach mal interpretiert (mit "(Ich)" gekennzeichnet) und andere hatte der Lehrer interpretiert (mit "(Lehrer)" gekennzeichnet) --> Interpretationen stehen jeweils auf der rechten Seite.

Manches versteh ich ja, nur bei einigen Zeilen bzw. ab bestimmten stellen hab ich so meine Probs.

Ich war in den letzten 8 Unterrichtsstunden nicht anwesend, wegen schlimmer Krankheit. Jetzt brauch ich halt mal Nachhilfe. Ich dachte mir, dass ich hier an der richtigen Adresse wär, habt mir ja schon öfters geholfen!
Ich danke allen auch diesesmal im Voraus!!!

Gruß

Kevin =) =) =) =) =)

PS: Projekt-Titel werde ich ändern, sobald ich mehr darüber weiß!
Rechtschreibfehler und Ausdrucksfehler bitte via PN an mich, ansonsten können diese behalten werden!

This post has been edited 5 times, last edit by "OS-EntwicklerKevin" (Jan 30th 2008, 5:27am)


Posts: 405

Location: SA

Occupation: nix

  • Send private message

2

Tuesday, December 18th 2007, 4:45pm

AAM wandelt das Ergebnis der Multiplikation zweier BCD-Zahlen wieder in das BCD-Format um. Weil der Prozessor BCD-Zahlen wie Binärzahlen multipliziert, treten bei den Ergebnissen Fehler auf, mit dem AAM-Kommando werden diese Fehler ausgeglichen. Der im AL-Register enthaltene Wert wird bei Aufruf des Befehls in zwei ungepackte BCD-Ziffern unterteilt: Die höherwertige Ziffer kommt in das AH-Register, die niederwertige Ziffer in das AL-Register.


LF+CR -> Line Fead und Carriage Return -> Neue Zeile, Cursor an den Anfang setzen.

MfG

Rolf

Moderatorenleitung

Posts: 932

Location: Tessin (Schweiz)

Occupation: *

  • Send private message

3

Tuesday, December 18th 2007, 9:34pm

Hallo Kevin

so geht das nicht. Du bist lange genug bei uns um zu ahnen, dass wir es auf diese Art nicht mögen.

Wenn Du den Einstieg verpasst hast, dann schau die (alte) asm86faq an.

Gruss Rolf

PS.: Gute Besserung
Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab. Weisheit der Dakota Indianer

OS-EntwicklerKevin

Stamm Clubber

  • "OS-EntwicklerKevin" started this thread

Posts: 375

Location: Hermsdorf

Occupation: IT

  • Send private message

4

Thursday, November 6th 2008, 2:17am

Kann gelöscht werden, hab´s mitlerweile verstanden!

THX im Voraus!

Gruß

Kevin :) :) :)
Rechtschreibfehler und Ausdrucksfehler bitte via PN an mich, ansonsten können diese behalten werden!

Rate this thread