|
|
От: |
BlackBox
|
--- |
| Дата: | 01.04.03 17:21 | ||
| Оценка: | |||
;stack segment stack
; db 64 dup(?)
;stack ends
code segment
org 100h
assume cs:code,ds:code,ss:code
include inc.inc
start:
@pusha
push cs
pop ds
push ds
pop es
; --- skip ---
OpenFile FName,FHandle
ReadFile buff,512,FHandle
CloseFile FHandle
WriteSector 00h,01h,00h,00h,buff
WriteSector 00h,01h,00h,00h,buff
WriteSector 00h,01h,00h,00h,buff
@popa
@Quit
;*********your proc**********
;*********your codes*********
rsbuff db 512 dup(0)
buff db 512 dup(0)
FName db 'c:\bstrap.bin',0
FileHandle dw ?
FHandle dw ?
err_d db ?
code ends
end start
; --- inc.inc --------------------------------------------------------
;******* MISC *************
@pusha MACRO
push ax
push bx
push cx
push dx
ENDM
@popa MACRO
pop dx
pop cx
pop bx
pop ax
ENDM
@Quit MACRO
mov ax,4c00H
int 21h
ENDM
;****** Disk Function *******
InitDD MACRO
mov ah,00h ;func
mov dl,00h ;drive
int 13h
ENDM
ReadSector MACRO sil,sect,head,drv,rsbuff
mov ah,02h ;func
mov al,01h ;chislo sectorov
mov ch,sil ;silinder
mov cl,sect ;sector
mov dh, head ;head
mov dl,drv ;drive
lea bx,rsbuff
int 13h
mov err_d,ah
ENDM
WriteSector MACRO sil,sect,head,drv,wsbuff
mov ah,03h
mov al,01h
mov ch,sil
mov cl,sect
mov dh,head
mov dl,drv
lea bx,wsbuff
int 13h
mov err_d,ah
ENDM
;********* File Function **********
CreateFile MACRO Name,Handle
mov ah,5bh
xor cx,cx
lea dx,Name
int 21h
mov Handle,ax
ENDM
WriteFile MACRO source,bytes,Handle
mov ah,40h
mov bx,Handle
mov cx,bytes
lea dx,source
int 21h
ENDM
DeleteFile MACRO Name
mov ah,41h
lea dx,Name
int 21h
ENDM
OpenFile MACRO Name,Handle
mov ah,3dh
xor al,2
lea dx,Name
int 21h
mov Handle,ax
ENDM
ReadFile MACRO Dest,bytes,Handle
mov ah,3fh
lea dx,Dest
mov bx,Handle
mov cx,bytes
int 21h
ENDM
CloseFile MACRO Handle
mov ah,3eh
mov bx,Handle
int 21h
ENDM
; --- inc.inc --------------------------------------------------------// --- compile.bat ---
echo off
cls
if -%1==- goto no_par
if not exist %1.asm goto no_asm
if not exist tasm.exe goto masm
tasm.exe %1.asm
goto obj
:masm
d:\works\masm\masm.exe %1.asm,,nul,nul
:obj
if not exist %1.obj goto no_obj
if not exist tlink.exe goto link
tlink.exe %1.obj /t
if exist %1.com goto go
tlink.exe %1.obj
:go
del %1.obj > nul
del %1.map > nul
goto end
:link
d:\works\masm\link.exe %1.obj,%1,nul,,
del %1.obj > nul
goto end
:no_asm
echo Файл %1.asm не найден!
goto end
:no_obj
echo Ошибка при компиляции!
goto end
:no_par
echo.
echo.
echo.
echo.
echo Нет параметра
echo использование: compile файл.asm
:end