Frage Assembeler Tabelle

Gast #5902387
Lesenswert?

Hi Jan K.,

Wenn R17 = 0x02 gilt,
dann ist R17 := 0x02 - 0x30 = 0xD2 und Carry = 1.

Das geht so, wie die schriftliche Subtraktion im 10er System.
Nur hier im 16er System.

Schritt 1
__02 hex
-_30 hex
--------
  ?0 hex

Schritt 2
_102 hex
-_30 hex
--------
  ?2 hex

zwischen Rechnung
16 dec = 10 hex

10 hex - 3 hex
<==>
16 dec - 3 dec = 13 dec
<==>
10 hex - 3 hex = D hex

Es gilt ferner:
A hex = 10 dec
B hex = 11 dec
C hex = 12 dec
D hex = 13 dec
E hex = 14 dec
F hex = 15 dec

Schritt 2a
_102 hex
-_30 hex
--------
  D2 hex
#5902393
Lesenswert?

nur mal interessehalber: wozu macht man sowas heute noch?
Ja, ich habe es auch gemacht, vor 40+ Jahren.
Um das Prinzip zu verstehen, reichen deutlich weniger Zeilen.
Meinem ersten "Computer" habe ich so die ersten Schritte beigebracht, da 
ich keine alternative Maschine und auch keinen Assembler hatte. Aber 
heute? Masochismus?
#5902436
Lesenswert?

Jan K. schrieb:

>Bildschirmfoto_2019-07-09_um_14.56.01.png
>1,26 MB, 27 Downloads

Ersten ist .png das falsche Format für so eine Bild, siehe 
Bildformate und 2. warum in aller Welt schreibt man das auf Papier? 
Sowas macht man digital am PC, dann kann man nämlich sehr einfach und 
mit nahezu Null Speicherbedarf den Quelltext versenden. Jaja, im 
Gbit-Zeitalter interessiert 1MB Speicher keine Sau mehr, dämlich ist es 
trotzdem.

> Kann mir jemand erklären wie das 0xd2 berechnet wurde beim Befehl
> subi
> r17,0x30.

Ganz einfach. Wenn man von 0x02 0x30 abzieht ergibt das einen Unterlauf 
des Zahlenbereichs.

0x02 - 0x030 = -0x2E = 0xD2

https://de.wikipedia.org/wiki/Zweierkomplement
Angehängte Dateien:
#5902458
Lesenswert?

Falk B. schrieb:
> warum in aller Welt schreibt man das auf Papier?

(Berufs-)Schule, Hausaufgaben mit ziemlicher Sicherheit.

H.Joachim S. schrieb:
> nur mal interessehalber: wozu macht man sowas heute noch?

Bei mir kam es vor ein paar Jahren (2014/15) auch noch in der Ausbildung 
zum Elektroniker für Geräte und Systeme dran. In den Tests dann schön 
"Program on Paper", Zyklenzeiten berechnen, Statusdiagramme zeichen,...

Ich bin auch ein Fan von Hochsprachen und habe trotz regelmäßigem 
Gebrauch von C noch kein Assembler benötigt. Nur mal aus Spaß was mit 
uralten windowed PICs gemacht, da ich keine Lust hatte, den uralten 
MPLAB-C-Compiler zu installieren.

Ansonsten.. Warum lernt man in der Schule Stochastik, Trigonometrie und 
Co. wenn man es im Alltag nicht mehr braucht?

Aber Assembler in der Berufsschule kann man vielleicht damit erklären, 
dass es sehr hardwarenah ist und sich daran die Funktionen von ALU, 
Registern,... anschaulich erklären kann, ohne, dass eine Abstraktion 
dazwischen liegt.


Und wenn man besonders speichereffizient programmieren möchte, dann 
schadet es auch nicht, sich mal den Assembler vom C-Compiler anzugucken, 
um zu sehen, wo man noch ein paar Befehle durch umschreiben einsparen 
kann.
Gast #5903053
Lesenswert?

H.Joachim S. schrieb:
> nur mal interessehalber: wozu macht man sowas heute noch?
> Ja, ich habe es auch gemacht, vor 40+ Jahren.
> Um das Prinzip zu verstehen, reichen deutlich weniger Zeilen.
> Meinem ersten "Computer" habe ich so die ersten Schritte beigebracht, da
> ich keine alternative Maschine und auch keinen Assembler hatte. Aber
> heute? Masochismus?

Nö. Ich mach bei 8 Bit MCs nur Assembler und hasse Hochsprachen. Die 
geben vor zu vereinfachen machen aber letztlich alles nur komplizierter. 
Dazu ist Asm flexibler, schneller, passgenauer, zeilenkürzer und hält 
dazu an bei den Hardwarefunktionen aus dem Vollen zu schöpfen und diese 
wirklich vollumfänglich auszunutzen. Nötig sind nur ein paar Asm 
Instruktionen und das Datenblatt. Anders schauts i.d.R. aber schnell aus 
wenn die Hardware komplexer wird. Dazu reichen schon 32Bit Controller. 
Aber, muss man ja nicht benutzen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren