|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 11.06.2006, 21:41 Titel: Assemblerfrage: Inhalt eines Registers ausgeben |
|
|
Hallo,
ich habe folgenden Code:
Code: | org 100h
section .text
mov bx,0h
start:
mov dx,hello_world
mov ah,09h
int 21h
add bx,1h
test bx, 0fh
jne start
mov ah,4Ch
int 21h
section .data
hello_world: db 'hello, world', 13, 10, '$' |
Das entspricht diesem QB-Programm:
Code: | bx%=0
START:
PRINT "hello, world"
bx%=bx%+1
IF bx%<>16 THEN GOTO start
END |
Meine Frage dazu: Wie kann ich auch noch den Inhalt des Registers bx ausgeben, das ich ja zum Schleifenzählen benutze?
Der QB Code sähe so aus:
Code: | bx%=0
START:
PRINT LTRIM$(STR$(bx%)); "hello, world"
bx%=bx%+1
IF bx%<>16 THEN GOTO start
END |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 11.06.2006, 22:05 Titel: |
|
|
Das kommt drauf an wie groß der Zähler BX wird.
Wenn er 1-stellig bleibt, also 0-9 dann kannst du folgendes dazwischensetzen:
Code: |
PUSH BX 'BX zwischenspeichern
ADD BX,30 'da BX 0-9 ist, addieren wa 48 Dazu was dann als ASCII "0"-"9" ergibt
MOV AH,0E 'Unterfunktion Eh
MOV AL,BL 'AL = ASCII-Zeichen
MOV BL, 07 'BL = Farbe
INT 10 'INT 10h, BIOS-Interrupt, gibt ein Zeichen auf Cursor aus und rückt ein weiter
POP BX 'BX wieder herstellen
|
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 12.06.2006, 20:36 Titel: |
|
|
Code: | ..
mov cx,bx
cmp cx,9
jng ziffer '<= 9 dann eine Zahl
sub cx,0ah '10 abziehen dann ist 2 Zahl einstellig
mov ax,0e31h 'funktion 0e; ascii 31h anzeigen
mov bx,7
int 10
ziffer:
add cx,30h 'ist einstellig
mov al,cl
mov ah,0eh
mov bx,7
int 10
.. |
Gruß Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|