И еще раз о загрузчиках...

Тема в разделе "WASM.OS.DEVEL", создана пользователем phobos__, 16 май 2010.

  1. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Hi всем, не могли бы вы дать РАБОТАЮЩИЙ вариант загрузчика, написанный на TASM?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    phobos__
    Во первых какого, бут.. пе.. или что ?
    Если нэйтивный пе, то забудьте про это, он огромный. Если вам модуль загрузить используйте мою надстройку. В любом ином случае решения с нуля не будет, даже за деньги.
     
  3. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Я пытаюсь самый простенький загрузчик, все лишь выводящий дату; что-то типа такого, только под TASM.

    ;FASM-версия
    org 7C00h
    use16

    jmp Beginning
    nop ; так как предыдущая команда занимает 2 байт, команда nop даст третий

    db 'bootsect'
    SectSize dw 00200h
    ClustSize db 001h
    ResSecs dw 00001h
    FatCnt db 002h
    RootSiz dw 000E0h
    TotSecs dw 00B40h
    Media db 0F0h
    FatSize dw 00009h
    TrkSecs dw 00012h
    HeadCnt dw 00002h
    HidnSec dw 00000h

    Beginning:

    cli
    mov ax, cs
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov sp, 7c00h
    sti


    xor ax,ax
    mov es,ax
    mov bx,7e00h
    mov ah,02h
    mov al,8
    xor dx,dx
    mov ch,00000000b
    mov cl,2
    int 13h

    jmp Main_Program

    ; Не забудем про сигнатуру бутсектора 55AAh, поэтому

    times (510-($-7C00h)) db 0
    db 055H,0AAH

    Main_Program:
    ...
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    phobos__
    Загрузчик понятие расплывчатое. Короче что вам нужно ?
    Бутлодер есть в сурцах MS.
     
  5. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Надо, чтоб программа загружалась с дискеты или на эмуляторе типа VM Ware, скомпилированная TASM. Я много раз пробовал переделать загрузчик Fasm, но безуспешно. Каждый раз EXE файл создается размером 65кБ! из-за директивы org 7c00. И я думаю, что проблема только в этом, в остальном вроде все понятно.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    phobos__
    Сделай для начала что-нибудь попроще, например выведи символ на экран. Потом отладь в эмуляторе и уже потом.
     
  7. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Пробовал, к сожалению пока не получается.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Вот рабочая программа, только сигнатуру нужно поставить в конец.
     
  9. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Booster, я наверное что-то не так делаю, но программа не работает ни в Bochs ни в vmware.Вот твоя программа которую я компилирую:
    CODE SEGMENT PARA PUBLIC 'CODE' USE16
    ASSUME CS:CODE, DS:CODE, SS:CODE
    ORG 7C00H
    START:

    cli ; подготовим регистры
    mov ax, cs
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov sp, 7c00h
    sti

    MOV AX, 3
    INT 10H
    MOV AX, 0B800H
    MOV ES, AX
    mov ax,1f33h ;чтобы проверить,что хоть что-то выводится
    stosw
    L1:
    XOR AX, AX
    INT 16H
    MOV BYTE PTR ES:[0], AL
    MOV BYTE PTR ES:[1], 0FH
    JMP L1
    RET
    times db (510-($-offset start)) dup (0)
    db 055H,0AAH
    CODE ENDS
    END START
    ;компилирую так:tasm d:\a2.asm d:\a2.obj
    ;tlink /v d:\a2.obj d:\a2
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Попробуй так:
    tasm /m /ml d:\a2.asm d:\a2.obj
    tlink -t d:\a2.obj, d:\a2.bin
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    И кстати ничего пихать в мой исходник необязательно, там по нажатию клавиш на экран выводятся символы .
     
  12. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Booster спасибо - так наконец заработала!