Division in Assembly. Zeichen sind in ASCII gespeichert?
section .text
global main

main:
  mov esi, 10           ; ESI holds current number
  mov eax, 0           ; EAX holds sum of numbers
  push 10             ; Line feed for end of line (Stack is first in, last out -> Line feed will be last char)
  mov edi, 10           ; Divisor of 10 for seperating digits of number (used in divisionLoop)



; Sum numbers 1 through 10
sumLoop:
  add eax, esi          ; Add number to sum
  dec esi             ; Next number
  jnz sumLoop           ; Loop until 0



; Seperate eax into its digits, by dividing by 10 multiple times,
; where in each division the remainder will be a single digit 
; and the quotient will be the remaining digits used as dividend in next loop run
divisionLoop:
  mov edx, 0           ; Make sure edx is empty, as it is used as upper half of dividend
  div edi             ; Divide eax by edi (= 10) => quotient is in eax (= Rest of digits for next loop), remainder in edx (= Single digit)
  add edx, 48           ; Make edx (digit) a char representing its value by adding '0' to it
  push edx            ; Push char to stack for usage in print later

  cmp eax, 0           ; Loop until quotient is 0 (=> no more digits left)
  jne divisionLoop



; Print digits from Stack one by one
printLoop:
  mov eax, 4
  mov ebx, 1
  mov ecx, esp          ; Print top of stack (esp always points to top of stack)
  mov edx, 1           ; Length of 1 byte (= 1 char)
  int 80h

  pop esi             ; Remove top of stack
  cmp esi, 10           ; Loop until Line feed is reached
  jne printLoop


exit:
  mov eax, 1
  mov ebx, 0           ; Exit code 0
  int 80h

Hallo,

hier steht ein Programm in Assembler, dass die Zahlen von 1 bis 10 addiert.

Die 55 durch 10 teilt und die Reste der Division dann in einem Stack speichert.

push....

Am Ende wird alles über den Standardkanal ausgegeben auf der Konsole.

Wenn ich 55 / 10 teile ergibt das Quotient 5 steht in Register eax und der Rest hier auch 5 in edx Register. Bevor ich jetzt den Rest auf den Stack lege wird die Zahl mit 48 addiert. ergbit 53 ist das char Zeichen 5 im ASCII Code.

Heißt das jetzt, dass die Ergebnisse bei einer ganzzahligen Division im Assembler-Code immer in ASCII-Zeichen gespeichert sind?

Computer, Mathematik, Java, Assembler, Informatik, Programmiersprache
Ist diese Beschleunigungs-Rechnung richtig?

Hi. Ich habe mich mal spaßeshalber an eine Physikaufgabe gesetzt und bin mir nicht ganz sicher, ob ich diese richtig gerechnet habe.

Hier einmal die Aufgabenstellung:
Bei einer wissenschaftlichen Untersuchung beschleunigte ein Wanderfalke, der auf einer Höhe von 372 m flog, von 40km/h, um nach 16 Sekunden eine Taube auf einer Höhe von 38m über dem Erdboden zu schlagen. Die horizontale Distanz zwischen den Messpunkten betrug dabei 702m.

a) Berechne die mittlere Beschleunigung des Wanderfalken während seines Sturzfluges.
Hier einmal meine Rechnung:

Ich habe zur Überprüfung auch noch einmal ChatGPT gefragt.
Die Lösung von ChatGPT und mir stimmen nicht überein.
Hier der Lösungsansatz von ChatGPT:

Zunächst müssen wir die Endgeschwindigkeit des Wanderfalken berechnen, wenn er die Taube schlägt. Wir können die kinematische Gleichung verwenden:

v_f^2 = v_i^2 + 2ad

wobei v_f die Endgeschwindigkeit ist, v_i die Anfangsgeschwindigkeit, a die mittlere Beschleunigung und d die Entfernung zwischen den Messpunkten.

Da der Wanderfalke von 40 km/h auf Null beschleunigt, ist seine Anfangsgeschwindigkeit v_i = 40 km/h = 11.11 m/s. Die Entfernung zwischen den Messpunkten ist d = 702 m. Wir setzen diese Werte in die Gleichung ein und lösen nach v_f auf:

v_f^2 = (11.11 m/s)^2 + 2a(702 m)
v_f^2 = 123.21 m^2/s^2 + 1404a
v_f^2 - 1404a = 123.21 m^2/s^2
v_f^2 = 123.21 m^2/s^2 + 1404a
v_f = sqrt(123.21 m^2/s^2 + 1404a)

Als nächstes müssen wir die Zeit berechnen, die der Wanderfalke benötigt hat, um von einer Höhe von 372 m auf eine Höhe von 38 m zu fallen. Wir können die kinematische Gleichung verwenden:

d = v_it + 0.5a*t^2

wobei d die Höhendifferenz, v_i die Anfangsgeschwindigkeit, a die mittlere Beschleunigung und t die Zeit ist. Da die Anfangsgeschwindigkeit des Wanderfalken Null ist, vereinfacht sich die Gleichung zu:

d = 0.5at^2

Wir setzen die Werte ein und lösen nach t auf:

334 m = 0.5a(16 s)^2 334 m = 128a a = 2.61 m/s^2

Schließlich können wir die mittlere Beschleunigung des Wanderfalken während des Sturzfluges berechnen, indem wir v_f und v_i sowie die Zeit, die der Wanderfalke benötigt hat, um von 372 m auf 38 m zu fallen, kennen:

a = (v_f - v_i) / t
a = (sqrt(123.21 m^2/s^2 + 1404a) - 11.11 m/s) / 16 s
a = (sqrt(123.21 m^2/s^2 + 1404*2.61 m/s^2) - 11.11 m/s) / 16 s
a = 9.81 m/s^2

Die mittlere Beschleunigung des Wanderfalken während seines Sturzfluges beträgt 9.81 m/s^2, was der Beschleunigung aufgrund der Schwerkraft entspricht.

Bild zum Beitrag
Bewegung, Schule, Mathematik, Geschwindigkeit, rechnen, Beschleunigung, Formel, Physik, Kinematik
Ich verstehe Mathe einfach nicht was kann ich tun?

Hallo erstmal und danke im Voraus :)

Also ich hatte schon mein Leben lang Probleme mit Mathe und früher ging es noch einigermaßen (also in der Grundschule) aber in der Zeit wurde es immer schlimmer und ab einen Punkt hab ich wirklich einfach nichts mehr verstanden und eine schlechte Note in Mathe eine nach der anderen bekommen meine beste Note in der ganzen Schulzeit (5-9 klasse) war eine 3- dannach waren es immer nur noch 5,6 mit etwas Glück eine 4- und es ist nicht so als wäre ich in allen Fächern schlecht eher im Gegenteil in anderen Fächern bin ich viel besser Alle stehen bei mir 1-3 es ist nur Mathe gewesen immer auf dem Zeugnis hatte ich auch die letzten Jahre immer eine 5 in Mathe. Viele sagen zu mir einfach das ich mich nicht bemühen würde es zu verstehen aber glaubt mir ich versuche es sehr hart ich gehe seit Jahren zur Nachhilfe (Privat, Gruppen Nachhilfe, online Nachhilfe, Nachhilfe von der Schule) ich hab alles probiert aber mir hilft einfach nichts ich verstehe Mathe einfach nicht es kommt nicht in mein Kopf..Meine Lehrerin hat mich schon zu einer Art Therapeutin geschickt um zu prüfen ob ich eine Rechenschwäche habe aber der Termin ist erst in ein paar Monaten.
Es macht mich runter das alle meine Freunde Mathe so einfach verstehen und es ohne Probleme schaffen.. und manchmal frage ich mich einfach was falsch mit mir ist ,wieso ich nicht einfach so wie die anderen normal rechnen kann..

Mit freundlichen Grüßen und nochmal danke im Voraus ☺️

Lernen, Schule, Mathematik, schwer
Gibt es einen Trick bei der Matrixmultiplikation?

Hallo allerseits.

Ich bin gerade auf der Suche nach einer einfacheren Lösung für folgende Aufgabenstellung.

Die Matrizen A und B seine als n×n Matrizen fest vorgegeben. Zu bestimmen ist nun eine Matrix C, sodass C*A=B gilt. Über die Invertierbarkeit der Matrizen sind keine Informationen gegeben.

Mein Ansatz wäre es jetzt gewesen, die Einträge der Matrix C einfach mit Variablen zu belegen. Anschließend könnte ich ein lineares Gleichungsystem aufstellen und die Variablen ermitteln.

In meinem Fall sind die Matrizen A und B (und somit dann auch C) 3×3-Matrizen. Das heißt, ich hätte bereits hierfür ein LGS mit 9 Gleichungen. Für größere Matrizen scheint meine Lösung also schon sehr ineffizient zu sein. Ich suche deshalb nach einer Lösung, die auf ein LGS verzichten kann. Allerdings komme ich hierbei nicht wirklich weiter. Selbst wenn bekannt wäre, welche Matrizen invertierbar sind, schaffe ich es nicht, C auf einer Seite der Gleichung zu isolieren.

Oder darf ich die Inverse zu A (insofern A invertierbar ist) auch "von rechts multiplizieren"? Also nach dem Schema

C*A=B

C*A*A'=B*A'

C=B*A'

Angenommen A wäre invertierbar, dann müsste die Gleichung doch auch so stimmen, da die Matrizenmultiplikation assoziativ ist.

Aber spätestens dann, wenn A nicht invertierbar ist, geht auch dieses Konzept nicht mehr auf.

Ich würde mich sehr darüber freuen, wenn mir jemand eine Idee hätte, wie ich diese Aufgabe einfacher und eleganter lösen könnte.

Mathematik, rechnen, Algebra, Gleichungen, lineare Algebra, Logik, Mathematiker, Matrix

Meistgelesene Beiträge zum Thema Mathematik