programm erklärung
-
hiho, kann mir das jemand erklären ?
[cpp]
;****************************************************************
;* Aufgabe15: Fortlaufendes Zählen und verzögerte binäre *
;* Anzeige des entsprechenden Bytes *
;* - mit Rotier-Befehl. Abbruch mit Escape-Taste *
;****************************************************************INCLUDE MACRO.BIB
.MODEL SMALL
.STACK 256.CODE
START: MOV BL,0 ; Zähler initialisieren
M4: MOV CX,8
M3: ROL BL,1 ;WOZU?
JNC M1
MOV DL,31H ; Vorbereitung: Anzeige "1"
JMP M2
M1: MOV DL,30H ; Vorbereitung: Anzeige "0"
M2: ANZEIGE_DL
LOOP M3
INC BL ; Zähler erhöhen
NEUE_ZEILE ; Leerzeile ausgeben
WARTE 200
PUSH AX
MOV AH,06H ; Abfrage Tastatur-Puffer
MOV DL,0FFH ; was macht das?
INT 21H
JZ M5
CMP AL,1BH ; Escape-Taste?
JE ENDE ; dann Abbruch des Programms
M5: POP AX
JMP M4
ENDE: MSDOS
END START
[/cpp]vielen dank
-
;**************************************************************** ;* Aufgabe15: Fortlaufendes Zählen und verzögerte binäre * ;* Anzeige des entsprechenden Bytes * ;* - mit Rotier-Befehl. Abbruch mit Escape-Taste * ;**************************************************************** INCLUDE MACRO.BIB .MODEL SMALL .STACK 256 .CODE START: MOV BL,0 ; Zähler initialisieren M4: MOV CX,8 M3: ROL BL,1 ;WOZU? JNC M1 MOV DL,31H ; Vorbereitung: Anzeige "1" JMP M2 M1: MOV DL,30H ; Vorbereitung: Anzeige "0" M2: ANZEIGE_DL LOOP M3 INC BL ; Zähler erhöhen NEUE_ZEILE ; Leerzeile ausgeben WARTE 200 PUSH AX MOV AH,06H ; Abfrage Tastatur-Puffer MOV DL,0FFH ; was macht das? INT 21H JZ M5 CMP AL,1BH ; Escape-Taste? JE ENDE ; dann Abbruch des Programms M5: POP AX JMP M4 ENDE: MSDOS END START
-
das mit dem rol und dann abfragen des carray bits gefällt mir, soviel mal vorne weg ;).
also um genau zu sein der schleifenzähler wird erst eine zeile später initialisiert (cx) und die 8 kommt daher dass ein byte 8 bits hat. weiter unten auf dem folgenden link steht dann noch was zum rol befehl, was wichtig ist um die berechnugen zu erstehn:
http://www.avr-asm-tutorial.net/avr_de/rechnen/multiplikation.htmlWas macht das?
http://andremueller.gmxhome.de/referenz.html#int21h
Escape taste?
ja.