Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4232 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 ..
Ähnliche Inhalte
Batch & Shell
Ist das mit Batch möglich? (2)

Frage von it-frosch zum Thema Batch & Shell ...

Vmware
ESXi Anmelung nicht möglich (5)

Frage von VerwirrterUser zum Thema Vmware ...

Exchange Server
Szenario so mit MIcrosoft Exchange möglich? (4)

Frage von mario89 zum Thema Exchange Server ...

Windows Tools
USB-Stick nur Lesezugriff möglich? (11)

Frage von Nathi1998 zum Thema Windows Tools ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...