NASM SBC-86 8086 Frage zu Sprungbedingungen. Denkfehler?



  • ; Konstanten
           led  equ 0h                  ;Diodenport
           key equ 80h                 ;Tastatur
           seg1 equ 90h
           seg2 equ 92h
           seg3 equ 94h
           seg4 equ 96h
           seg5 equ 98h
           seg6 equ 9Ah
           seg7 equ 9Ch
           seg8 equ 9Eh  
    
     ; Startadresse      
           org 100H
           CPU 8086
    
           WDH:  
           in    al,   key         ;Einlesen von Binary Input
           mov   cx,   ax
           and   al,   00000111b   ; obere 5 bits löschen um untere zu vergleichen
           mov   bx,   nokey
           cmp   al,   bl
           je   WDH
           mov   ax,   cx
           out  led,   al        ;Ausgabe an Dioden     
           out seg1,   al        ;Ausgabe an ganz Rechte Segmentanzeige
           jmp WDH
    
           ;Stapelspeicher
           nokey db 00000111b        ;taste nicht gedrückt
    

    Also ich hab folgendes Programm geschrieben.
    Das Programm soll zunächst die Bits abfragen die gerade an der stelle key stehen. Ist keine taste gedrückt sind die ersten 3 bits von rechts immer 1.
    Ich habe dann eine Abfrage die feststellt ob die beiden Bitmuster identisch sind hinsichtlich dieser 3 ziffern.
    Falls ja soll zum anfang gesprungen werden und wieder die key bits eingelesen werden.
    Falls nein "taste wurde gedrückt" soll das Bitmuster auf den LEDs ausgegeben werden.

    Nur irgendwie funktioiert die bedingung nicht so ganz die Dioden leuten gleich zu beginn und nicht erst wenn ich eine Taste drücke.
    Wo ist mein Denkfehler in dem Quelltext?



  • hab mein fehler gefunden ich hab inhalt mit adresse verglcihen, da kann nichts gleiches bei raus kommen...


Anmelden zum Antworten