Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zahlenausgabe nicht möglich

Frage Entwicklung Assembler

Mitglied: supernicky

supernicky (Level 1) - Jetzt verbinden

10.03.2011 um 23:30 Uhr, 4194 Aufrufe, 5 Kommentare

Ergebnis einer Berechnung kann nicht ausgegeben werden....

Hallo,

Ich bischäftige mich erst seit kurzem mit Assembler, aber .........

es ist mir nicht möglich nach Eingabe zweier Zahlen das Ergebnis einer Berechnung auf dem Schirm auszugeben.
Mit Zeichenketten funktioniert das problemlos..

Auch in den Büchern werden nicht Ergebnisse ausgegeben, sondern immer nur nach einem Vergleich der jeweilige vordefinierte String.

Ist es denn nicht möglich???

(zahl1 = 5 und zahl2 = 12, also nur was kleines)

mov al, zahl1
mul zahl2
mov ergebnis, ax


mov dx,ergebnis
"mov dx, offset ergebnis und lea dx, ergebnis funktionieren auch nicht...."

mov ah,09h
int 21h

hiermit erreicht man ein paar Töne aber keine brauchbare Ausgabe auf dem Schirm

Wäre nett wenn jemand Licht ins Dunkel bringen könnte.

Gruß, Nicky
Mitglied: 76109
11.03.2011 um 01:08 Uhr
Hallo supernicky!

So einfach geht das nicht.

Du musst Zahlenwerte vorher in einen String im ASCII-Format konvertieren. Dazu schreibt man in der Regel Konvertierungsroutinen, die eine Zahl in einen ASCII-String umwandeln.

Beispiel: die Zahl 0 entspricht dem ASCII-Wert 30h, die Zahl 9 dem ASCII-Wert 39h

Bei zweistelligen Zahlen bis 99 (AX) und vierstelligen Zahlen bis 9999 (EAX) gehts noch relativ einfach:

01.
Test Proc Pascal Near 
02.
 
03.
    Local buff:Byte:32  ;Buffer 32 Byte (Stack-Variable) 
04.
     
05.
    mov ax, 99          ;AX = Zahl 99 
06.
    aam                 ;AH = Zahl 9, AL = Zahl 9 
07.
    add ax, 3030h       ;AH = ASCII 9, AL = ASCII 9 
08.
     
09.
    mov [buff], ax      ;ASCII 99 in Buffer 
10.
    mov [buff+2], '$'   ;Stringende mit $ angeben sonst Piepts höchstwahrscheinlich 
11.
    lea dx, [buff]      ;DX = Offset Buffer 
12.
     
13.
    mov ah, 9           ;Funktion Stringausgabe 
14.
    int 21h             ;Dos-Int 21h 
15.
     
16.
    ret 
17.
 
18.
Endp
Versuchs mal (ich kanns bei mir nicht testen)

Gruß Dieter
Bitte warten ..
Mitglied: supernicky
11.03.2011 um 01:32 Uhr
Hallo Dieter,

es geht.

ich werde mal ein paar Versuche starten und noch etwas im Buch lesen..

den aam Befehl kenne ich noch nicht...
wieso eine addition mit 12336 aus einer Binär eine Dezimalzahl macht weiß ich auch noch nicht.. aber ich bekomme es noch raus

Erstmal danke für den Code..

Nicky
Bitte warten ..
Mitglied: supernicky
15.03.2011 um 23:11 Uhr
Hallo nochmal,,

mit der Zahlenausgabe klappt es jetzt... aber..

wenn ich mit einem Buffer arbeite (5 Byte groß) und ich überschreibe ein Byte mit einem neuen Wert
z.B. String "Nicky", "$"

mov bx, offset String
mov [bx], "M"

dann sollte eigentlich nur das N durch ein M ausgetauscht werden, was auch passiert. Jedoch wird dabei immer das nächste Byte gelöscht.
Sobald ich nun beim y ankomme und mache daraus ein i, wird das "$" ebenfalls gelöscht und ich erhalte wieder Signale aus dem All.

Kann hier vielleicht jemand sein Wissen veröffentlichen?

Danke, Nicky
Bitte warten ..
Mitglied: 76109
15.03.2011 um 23:24 Uhr
Hallo Nicky!

versuchs mal mit:
01.
mov byte ptr [bx], 'M'
Gruß Dieter

PS. Das '$' musst Du bei der Buffergröße auch mitzählen. Es schadet auch nicht, wenn er größer ist, als benötigt wird
Bitte warten ..
Mitglied: supernicky
15.03.2011 um 23:35 Uhr
jetzt wo ich es lese fällt es mir wieder ein...

klappt wieder einmal...

danke
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

(1)

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
Ordnerumleitung durch Zugriffsverweigerung nicht möglich (1)

Frage von F5Hauer zum Thema Windows Server ...

Windows Server
gelöst Servername in der Domäne ändern nicht möglich (4)

Frage von Ghost108 zum Thema Windows Server ...

Windows Server
Livemigration von Hyper-V im Cluster nicht möglich (5)

Frage von Dexx024 zum Thema Windows Server ...

Router & Routing
gelöst OpenVPN Zertifikat abgelaufen - Verbindung nicht möglich (31)

Frage von intane zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

TK-Netze & Geräte
Convert von TAPI auf CAPI gesucht (12)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...