I have this assignment to make booting program that shows the partitions disk on MY PC .. I searched a lot and figured out that the section that holed those info in 1BE so I am trying to read from that sector ..I found some codes and tried to study interrupt 13 this code and I don't know I feel there is something wrong
then when I run it with NASM it showed an error unrecognized directive ORG
thanks a lot :) :) :)
[BITS 16] ; 16 bit code generation
[ORG 0x7C00] ; Origin location
; Main program
main: ; Label for the start of the main program
start:
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
sti
reset: mov ah,0h ;resetting the drive to the first sector
mov dl, 0x80
int 13h
js reset
read: mov ax,1BEh ;reading sectors into memory address 0x1BE:0
mov es,ax
xor bx,bx
mov ah,02h
mov al,01h ;reading 1 sector
mov cx, 0001h ; track 0, sector 1
mov dx, 0000h ; head 0, drive 0
int 13h
jc errp ; detect error
ret
jmp $ ; Never ending loop
; Procedures
errp: ; process error here
mov ax,0x0000
mov ds,ax
mov si, ERRR ; Load the string into position for the procedure.
call PutStr
PutStr: ; Procedure label/start
; Set up the registers for the interrupt call
mov ah,0x0E ; The function to display a chacter (teletype)
mov bh,0x00 ; Page number
mov bl,0x07 ; Normal text attribute
.nextchar
lodsb
or al,al
jz .return
int 0x10 ; Run the BIOS video interrupt
jmp .nextchar ; Loop back round tothe top
.return ; Label at the end to jump to when complete
ret ; Return to main program
; Data
ERRR db 'ERROOOORR',13,10,0
; End Matter
times 510-($-$$) db 0
dw 0xAA55