Syntax-Fehler in meinem Assembler-code
Hatte ich diesen code, und ich Frage mich, wenn jemand bereit wäre mir zu helfen, es funktioniert.
TITLE MASM Template (main.asm)
; Description: this code is supposed to print out each letter followed by a space and then the capitalized version on seperate lines
; Revision date:
INCLUDE Irvine32.inc
.data
myArray byte 'l','s','d','t','h','c','f','u','c','k' ;my array of 10 characters
.code
main PROC
mov ecx,0 ;clears ecx
mov ecx,LENGTHOF myArray ;should be 10
mov edi,OFFSET myArray ;will point to the beginning of the array
mov eax,0 ;clears eax
mov esi,0 ;clears esi
LOne:
mov eax,myArray[esi] ;points the pointer at the beginning of myArray
WriteChar eax ;prints the designated value in the array
WriteChar 32 ;prints a space (32 is the ascii value for ' ')
sub eax,32 ;subtracts 32 from the ascii value of the char
;the capital version of each letter is -32 of its ascii value
WriteChar eax ;prints the capital version
call CLRF ;prints new line
inc esi ;increments esi to the next array value
dec ecx ;decrements ecx, moving it through the array
loop LOne ;loops back until ecx is equal to zero
exit
main ENDP
END main
Es nicht kompiliert er mir syntax-Fehler.
1>main.asm(22): A2008 Fehler: Syntaxfehler : eax
1>main.asm(23): A2008 Fehler: Syntaxfehler : WriteChar
1>main.asm(26): A2008 Fehler: Syntaxfehler : eax
1>main.asm(21): error A2022: Befehl Operanden müssen die gleiche Größe
1>main.asm(27): error A2006: undefined symbol : CLRF
- Ok, nevermind, was der code tut, zu sehen, LSD, THC, und F*CK alle zusammen in einem einzigen post SO ist eine Premiere für mich!
- Was ist passiert, und wie unterscheidet es sich von dem, was Sie wollen/erwarten? Ich sehe keine Stelle, die Sie drucken sich eine neue Zeile, die die Kommentare scheinen zu zeigen, die Sie wahrscheinlich wollen, aber das ist das einzige problem, springt sofort an.
- der code kann nicht kompiliert werden, es sagt syntax-Fehler, die auf Linien 22,23,24,26
- oh ja, ich verließ die neue Zeile code, call CLRF richtig funktioniert? nicht, dass die Feste der code, der keine, aber danke
- was ist ein SO ein post?
- Was funktioniert nicht genau? Fragen prägnante Fragen bitte.
- insbesondere keines, es funktioniert lol. Es wird nicht kompilieren, es sagt: 1>main.asm(22): A2008 Fehler: Syntaxfehler : eax 1>main.asm(23): A2008 Fehler: Syntaxfehler : WriteChar 1>main.asm(26): A2008 Fehler: Syntaxfehler : eax 1>main.asm(21): error A2022: Befehl Operanden müssen die gleiche Größe haben 1>main.asm(27): error A2006: undefined symbol : CLRF speziell, ich will es drucken Sie jeden Buchstaben, dann ein Leerzeichen, dann die Großschreibung der Buchstaben und dann eine Rendite, bis es getan hat, so dass für jedes element im array.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ah, Kip Irvine Buch... ich erinnere mich wollen, zu schreiben, meine eigene Bibliothek, so würde ich nicht verwenden, seine...
Müssen Sie
call
diese library-Funktionen, das ist nicht, wie Sie es tun in der Versammlung Sprachen.Vorausgesetzt, seine Bibliothek hat sich nicht geändert, seit der 4. edition
WriteChar
erfordert, dass Sie, um das Zeichen zu verschieben, die Sie möchten, schreiben Sie in das registeral
.Crlf
benötigt keine Argumente, so dass Sie nur können es nennen, aber die Rechtschreibung ankommt. 😉Nachdem Sie die syntax Recht, Sie wollen überprüfen Sie Ihre Logik.