@scales of justice koenntest du mir bidde bidde mal deinen asm code schicken damit ich mir das mal angucken kann??? meine mail add: badhazelnoot at gmail dot com
09. November 2026, 18:27
org 0x7c00
KERNEL_SIZE equ 76
KERNEL_SEGMENT equ 0x1000
KERNEL_START equ 1
%define LOOPS_1 bp-2
%define CYLINDER bp-4
%define HEADS bp-6
%define SECTORZ bp-8
%define LOGICAL bp-10
%define BUFFER bp-12
SUB sp, 12
CLI
XOR ax, ax
MOV ss, ax
MOV sp, 0x7c00
MOV ds, ax
STI
MOV ax, KERNEL_SEGMENT
MOV es, ax
XOR bx, bx
MOV cx, KERNEL_SIZE
MOV [LOOPS_1], cx
MOV ax, 1 ;start at sector2
MOV [LOGICAL], ax
MOV [SECTORZ], ax
main_loop:
MOV [LOOPS_1], cx ;take the loopvar to the logical sector number
MOV ax, [LOGICAL] ;Cylinder
MOV bx, 36
MOV dx, 0
DIV bx
MOV [CYLINDER], ax
MOV dx, 18 ;set TRACK 0 if TRACK is 18 is null
CMP dx, [SECTORZ]
JE set_null
fail:
;read the sector
MOV ax, KERNEL_SEGMENT
ADD bx, 512
MOV ah, 2
MOV al, 1
MOV ch, [CYLINDER]
MOV cl, [SECTORZ]
MOV dx, 0
INT 0x13
JC fail
MOV cx, [LOOPS_1]
MOV al, 1
ADD [LOGICAL], al
ADD [SECTORZ], al
LOOP main_loop;
JMP KERNEL_SEGMENT:0x0000
set_null
MOV ah, 0x0e
MOV al, '.'
MOV bx, 0x0004
INT 0x10
MOV dx, 1
MOV [SECTORZ], dx
JMP fail
00010167905e[CPU0 ] CALL_Ad: offset outside of CS limits an dem wirds wohl liegen... aber wie krieg ich das raus?
(()[BITS 16]
[ORG 0x7C00]
KERNEL_SIZE equ 76
KERNEL_SEGMENT equ 0x1000
KERNEL_START equ 1
%define LOOPS_1 bp-2
%define CYLINDER bp-4
%define offs bp-6
%define SECTORZ bp-8
%define LOGICAL bp-10
%define seg bp-12
SUB sp, 12
CLI
XOR ax, ax
MOV ss, ax
MOV sp, 0x7C00
MOV ds, ax
STI
MOV ax, KERNEL_SEGMENT
MOV es, ax
MOV [seg], ax
MOV bx, 0
MOV [offs], bx
MOV cx, KERNEL_SIZE
MOV [LOOPS_1], cx
MOV ax, 1 ;start at sector2
MOV [LOGICAL], ax
MOV [SECTORZ], ax
main_loop:
MOV [LOOPS_1], cx ;take the loopvar to the logical sector number
MOV ax, [LOGICAL] ;Cylinder
MOV bx, 36
MOV dx, 0
DIV bx
MOV [CYLINDER], ax
MOV dx, 18 ;set TRACK 0 if TRACK is 18 is null
CMP dx, [SECTORZ]
JE set_null
fail:
;read the sector
MOV ax, [seg] ;<--- hier addiere ich nun immer 32 dazu!!(waenn ich das nicht tue veraendert sich auch nichts)
MOV bx, [offs] ;<--- hier war der fehler
MOV ah, 2
MOV al, 1
MOV ch, [CYLINDER]
MOV cl, [SECTORZ]
MOV dx, 0
INT 0x13
JC fail
MOV cx, [LOOPS_1]
MOV al, 1
ADD [LOGICAL], al
ADD [SECTORZ], al
MOV al, 32
;ADD [seg], al
MOV ax, 512
ADD [offs], al
LOOP main_loop;
JMP KERNEL_SEGMENT:0x0000
set_null
mov ah, 0x0e
mov al, '.'
mov bx, 0x0004
int 0x10
MOV dx, 1
MOV [SECTORZ], dx
JMP fail