Zahlenspiele die Zweite: Basis 16

…Idee wurde Algorythmus,  Algorythmus zu Mnemonic und Mnemonic zum Programm…….

Passiert oft während einer langweiligen Zugfahrt oder in Wartezimmern von Ärzten, nicht nur spektakuläres, sonder auch oft ganz grundlegendes.

Die Umwandlung eines 8-Bit Integers nach ASCII zur Ausgabe auf den Bildschirm in 6502 Assembler zum Beispiel, schau einfach mal hier nach:  https://retrozock.wordpress.com/2012/04/07/zahlenspiele/

Gleiches Prinzip, die Umwandlung eines 8-Bit Integres nach Hex. Dezimale Zahlen gründen sich auf der Basis 10 und werden mittels der Ziffern 0 bis 9 dargestellt.

Hexadezimale Zahlen gründen sich auf der Basis 16 und werden mittels der Ziffern 0 bis F dargestellt. Für die Umwandlung eines 8-Bit Integres benötigen wir im hexadezimalen Zahlensystem 2 Ziffern. Stelle 1 ergibt die Potenz 16^1=16 und die zweite Stelle 16^0=1 (vgl. dezimal: 10^2=100, 10^1=10, 10^0=1).

Wir fragen uns nun , wie oft kann ich von meiner Zahl, sagen wir der 169, die 16 abziehen? 10 mal, Rest 9!

Damit ist die erste Ziffer unserer gesuchten Zahl (hex) die 10, also A.

Weiter mit dem Rest. Wie oft kann ich von der Neun die 1 abziehen? Neun mal, Rest 0!

Damit ist die zweite Ziffer unserer gesuchten Zahl (hex) die 9 => 169 (dez.)=A9 (hex).

Das nachstehende Progrämmchen macht’s vor:

* INTHEX.SRC
*
* WANDELT DEN IN "ZAHL" ENTHALTENEN
* INTEGER IN BILDSCHRIMZEICHEN UM UND
* GIBT DIESE AUF DEM BILDSCHIRM
* ALS HEX- ZAHL AUS
*
* ZAHL KLEINER ODER GLEICH 255!
*
* B.FRITZ 5.6.2012
*************************************

BILD    EQU 88   ADRESSE BILDSPEICHER
BILDH   EQU 89

        ORG $A800
* ANZAHL DER STELLEN UNSERER ZAHL
* UND ZEIGER AUF UNSERE TABELLE DER
* POTENZEN VON 16

        LDY #0
* ANZAHL DER SUBTRAKTIONEN BIS DAS
* ERGEBNIS >0 WAR

        LDX #0
* LOS GEHTS
        LDA ZAHL  ZAHL VORHER RETTEN
        STA ZAHLB
L1      SEC
        LDX #0
L2      LDA ZAHLB
        SBC POW,Y
        STA ZAHLB
        BCC NULL  ERGEBNIS<0
        INX       ERGEBNIS>0 D.H.
        BCS L2    WEITER

NULL    LDA ZIFF,X      EREBNIS<0
        STA (BILD),Y    ZIFFER AUSG.

        LDA ZAHLB       ZAHL>0 MACHEN
        ADC POW,Y
        STA ZAHLB

        INY       NAECHST NIEDR.
        CPY #2    16ER, ALLE STELLEN
        BNE L1   DURCH?

BRK             JA!

*
* EINIGE DATEN
*

* UNSERE ZIFFERN- ZEICHEN

ZIFF    ASC %0123456789ABCDEF%
* 16ER
POW      DFB 16,1
* DIESE ZAHL SOLL AUSGEGEBEN WERDEN

ZAHL    DFB 169

* ZWISCHENSPEICHER ZUM RECHNEN

ZAHLB   DFB 0
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s

%d Bloggern gefällt das: