L
landy2005t
Unregistered / Unconfirmed
GUEST, unregistred user!
大哥这段代码我要写在delphi中,要怎么办,直接用asm end加入是不行的很多语句不支持。
且不支持汇编的标号的跳转语句。怎么办?帮帮我想想办法。
是不是这种汇编语句只能写在一个过程中或是函数中调用,不能写在一个按钮事件中?请指教?
.286
CODE SEGMENT
ASSUME CS:CODE,DS:code,ES:code
START:
;----------------------------------------------------------
;以下代码用INT13H读主引导区
mov ax,0201h
mov dx,0080h
mov cx,0001h
mov bx,7c00h
int 13h
;---------------------------------------------------------
;以下代码用I/O端口来写主引导区
mov dx,1f6h ; 要读入的磁盘号及磁头号
mov al,0a0h ; 磁盘0,磁头0
out dx,al
mov dx,1f2h ; 要写的扇区数量
mov al,1 ; 写一个扇区
out dx,al
mov dx,1f3h ;要写的扇区号
mov al,1 ;写到1扇区
out dx,al
mov dx,1f4h ; 要写的柱面的低8位
mov al,0 ; 低8位为0
out dx,al
mov dx,1f5h ; 要写的柱面的高2位
mov al,0 ; 高2位为0
out dx,al
mov dx,1f7h ;命令端口
mov al,30h ;尝试着写扇区.
out dx,al
oogle:
in al,dx
test al,8 ;磁盘扇区缓冲是否准备好
jz oogle
mov cx,512/2 ;设置循环次数(512/2)
mov si,7c00h
mov dx,1f0h ;数据端口,用来存放要发送的数据.
rep outsw ;发送数据.
; ------------------------------------------------------------------------------
;退出程序
mov ah,4ch
int 21
CODE ENDS
END START
且不支持汇编的标号的跳转语句。怎么办?帮帮我想想办法。
是不是这种汇编语句只能写在一个过程中或是函数中调用,不能写在一个按钮事件中?请指教?
.286
CODE SEGMENT
ASSUME CS:CODE,DS:code,ES:code
START:
;----------------------------------------------------------
;以下代码用INT13H读主引导区
mov ax,0201h
mov dx,0080h
mov cx,0001h
mov bx,7c00h
int 13h
;---------------------------------------------------------
;以下代码用I/O端口来写主引导区
mov dx,1f6h ; 要读入的磁盘号及磁头号
mov al,0a0h ; 磁盘0,磁头0
out dx,al
mov dx,1f2h ; 要写的扇区数量
mov al,1 ; 写一个扇区
out dx,al
mov dx,1f3h ;要写的扇区号
mov al,1 ;写到1扇区
out dx,al
mov dx,1f4h ; 要写的柱面的低8位
mov al,0 ; 低8位为0
out dx,al
mov dx,1f5h ; 要写的柱面的高2位
mov al,0 ; 高2位为0
out dx,al
mov dx,1f7h ;命令端口
mov al,30h ;尝试着写扇区.
out dx,al
oogle:
in al,dx
test al,8 ;磁盘扇区缓冲是否准备好
jz oogle
mov cx,512/2 ;设置循环次数(512/2)
mov si,7c00h
mov dx,1f0h ;数据端口,用来存放要发送的数据.
rep outsw ;发送数据.
; ------------------------------------------------------------------------------
;退出程序
mov ah,4ch
int 21
CODE ENDS
END START