FLAGS ASM; ; -------------------------------- ; Beobachtung der Flagstellung ; bei numerischen und logischen ; Operationen ; -------------------------------- ; ORG 4000H ; DEFW 7F7FH DEFM 'FLAGS' DEFB 1 ; ; Parameteruebergabe ; Startwert -> B ; Endwert -> C ; LD A,(0B782H) ; 1. Param. LD B,A LD A,(0B784H) ; 2. Param. LD C,A ; ; Vorbereitung der Schleife ; CALL TEXT ; Bildschirm ; INC C ; Endwert + 1 ; ; die zentrale Schleife ; LOOP: LD A,B ; B -> Akku ; ; Akku vor der Operation ; LD HL,0A0FH LD (0B7A0H),HL CALL BINOUT CALL HEXOUT ; ; ------------------------------------ ; die zu untersuchende Operation ; -> hier das Programm aendern! ; ADD 33H ; ; ------------------------------------ ; ; Akku nach der Operation ; LD HL,0C0FH LD (0B7A0H),HL CALL BINOUT CALL HEXOUT ; ; Flags nach der Operation ; PUSH AF ; F -> A POP HL LD A,L ; LD HL,110FH LD (0B7A0H),HL CALL BINOUT ; ; Schleifensteuerung ; TASTE: CALL 0F003H DB 0EH JR NC,TASTE ; CP 03H ; BRK ? JR Z,EXIT ; INC B LD A,B CP C JR NZ,LOOP ; ; Schleifenabbruch ; EXIT: CALL 0F003H ; neue Zeile DB 23H,0AH,0DH,0 ; RET ; zurueck zum CAOS ; ; Vorbereitung des Bildschirms ; PE: - ; PA: - ; VR: AF, HL ; TEXT: LD A,0CH ; CLS CALL 0F003H DB 0 ; LD HL,0A04H ; C-Pos LD (0B7A0H),HL ; CALL 0F003H DB 23H,'A vorher:',0 ; LD HL,0C04H LD (0B7A0H),HL ; CALL 0F003H DB 23H,'A nachher:',0 ; LD HL,0F04H LD (0B7A0H),HL ; CALL 0F003H DB 23H,'Flags: ' DB 'S Z x H x V N C',0 RET ; ; Ausgabe einer 8-Bit-Hexadezimalzahl ; an der aktuellen Cursorposition ; PE: A ... auszugebende Zahl ; PA: - ; VR: keine ; HEXOUT: PUSH AF CALL 0F003H DB 23H,' = ',0 POP AF PUSH AF CALL 0F003H DB 1CH POP AF RET ; ; Ausgabe einer 8-Bit-Binaerzahl an ; der aktuellen Cursorposition ; PE: A ... auszugebende Zahl ; PA: - ; VR: keine ; BINOUT: PUSH AF PUSH BC LD C,A LD B,8 S1: XOR A RL C RLA ADD 30H CALL 0F003H ; 1 oder 0 DB 0 LD A,20H ; Leerzeichen CALL 0F003H DB 0 DJNZ S1 POP BC POP AF RET ; END ¾@ S1:¹@ BINOUT:§@ HEX oder 0 DB 0 LD A,20H ; Leerzeichen CALL 0F003H DB 0 DJNZ S1 POP BC POP AF RET ; END ¾@ S1:¹@ BINOUT:§@ HEX