3
« am: 04. June 2006, 14:47 »
moin, habe versucht euer tutorial in masm zuübersetzen leider wird der string im "kernel" nicht ausgegeben vieleicht seht ihr den fehler die strings im bootloader werden ausgegeben
bootloader:
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG, DS:CODE_SEG
ORG 07C00H
START:
JMP M0
BOOTDRV DB 0
LOADMSG DB 2 DUP("BootScheisse.",13,10),0
M0: CLI
MOV AX, 9000H
mov SS, AX
mov SP, 0
STI
MOV [BOOTDRV], DL
CALL LOAD
CALL LOAD1
MOV SI,OFFSET LOADMSG
CALL STRD
MOV AX, 1000H
MOV ES, AX
MOV DS, AX
PUSH AX
MOV AX, 0
PUSH AX
LOAD PROC NEAR
PUSH DS
M1: MOV AX, 0
MOV DL, [BOOTDRV]
INT 13H
JC M1
POP DS
RET
LOAD ENDP
LOAD1 PROC NEAR
M2: MOV AX,1000H
MOV ES,AX
MOV BX, 0
MOV AH, 2
MOV AL, 5
MOV CX, 2
MOV DX, 0
INT 13H
JC M2
RET
LOAD1 ENDP
STRD PROC NEAR
M4: LODSB
OR AL,AL
JZ M3
MOV AH,0EH
MOV BX,0007H
INT 10H
JMP M4
M3: RET
STRD ENDP
GROESSE DB 385 DUP("B"),0
DW 0AA55H
CODE_SEG ENDS
END START
kernel:
CODE_SEG SEGMENT
ASSUME CS:CODE_SEG, DS:CODE_SEG
MOV AX, 1000H
MOV ES, AX
MOV DS, AX
START:
JMP M0
LOADMSG DB 2 DUP("ProgScheisse.",13,10),0
M0: MOV SI,OFFSET LOADMSG
CALL STRD
STRD PROC NEAR
M4: LODSB
OR AL,AL
JZ M3
MOV AH,0EH
MOV BX,0007H
INT 10H
JMP M4
M3: RET
STRD ENDP
CODE_SEG ENDS
END START