Ein paar Newbie Fragen :-)
-
Hi,
ich habe erst mit Assembler angefangen, und check das irgendwie nicht ganz, wie das abläuft. Ich bin jetzt bei meiner ersten Hello World Anwendung und peil da was nicht
Hier der Code:DATA SEGMENT WORD 'DATA' Msg DB 13,10,'Hallo, Welt!',13,10,'$' DATA ENDS CODE SEGMENT WORD 'CODE' ASSUME CS:CODE, DS:DATA Start: mov ax,DATA mov ds,ax mov dx,OFFSET Msg mov ah,009h int 021h mov ah,04Ch int 021h CODE ENDS END Start
Dieser Code schreibt Hello World in die Konsole und "pieps", jetzt meine Frage: Welcher Befehl ist für das schreiben verantwortlich und welcher Befehl "piepts"?
Und woher komen diese Zahlen?
mov ah,009h
int 021h
mov ah,04Ch
int 021hIch hoffe mir kann einer helfen, ich bin totaler Newbie
Daniel
-
hi!
also piepen kann diese anwendung schon mal nicht, da müsstest du folgendes schreiben
mov ah,2
mov dl,7
int 21hansonsten sind die folgenden anweisungen dazu da:
; daten-segment "aufmachen" hier kannst du 64K daten lagern
DATA SEGMENT WORD 'DATA'
; variable "Msg" "vereinbaren"
Msg DB 13,10,'Hallo, Welt!',13,10,'$'
; daten-segment "schließen"
DATA ENDS
; code segment "aufmachen"
CODE SEGMENT WORD 'CODE'
; dem segment-register CS die adresse vom code-segment zuweisen
ASSUME CS:CODE, DS:DATA
; start-label
Start:
; adresse vom daten-segment ins daten-segment-register DS kopieren
mov ax,DATA
mov ds,ax
; die offset-adresse von deinem Text (also Msg) nach Dx
mov dx,OFFSET Msg
; 09h ist die funktionsnummer des int 21h zum ausgeben von text
mov ah,009h
; und schließlich den DOS-Interrupt aufrufen
int 021h
; funktionsnummer zum beenden vom programm
mov ah,04Ch
; und los...
int 021h
; code-segment "zumachen"
CODE ENDS
; ende vom program
END Startcu todo