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.html

    Was macht das?

    http://andremueller.gmxhome.de/referenz.html#int21h

    Escape taste?

    ja.


Anmelden zum Antworten