📄 arse.asm
字号:
;********************************************
;文件名:ARSE.ASM
;功能:读硬盘0面0头1扇区数据并建立存储文件
;********************************************
data segment ;1.定义数据段
ostr db 'Enter file name:','$' ;2.屏幕提示
filename db 15 ;3.输入的文件名
db ? ;4.
db 15 dup(0) ;5.
buffer db 512 dup(0) ;6.扇区数据
tmp db 15 dup(0) ;7.转存的文件名
data ends ;8.
code segment ;9.定义代码段
assume cs:code,ds:data ;10.
start: ;11.程序开始
mov ax,data ;12.初始化数据段
mov ds,ax ;13.
;14.
mov ax,seg buffer ;15.用buffer初始化附加段es
mov es,ax ;16.
mov bx,offset buffer ;17.取址
mov ax,0201h ;18.程序入口参数
mov cx,0001h ;19.
mov dx,0080h ;20.
int 13h ;21.调用中断
mov dx,offset ostr ;22.
mov ah,09h ;23.输出字符串
int 21h ;24.
;25.
mov dx,offset filename ;26.
mov ah,0ah ;27.接收字符串
int 21h ;28.
mov si,offset filename ;29.
mov di,offset tmp ;30.
lstr: mov dl,[si+2] ;31.取字符
mov [di],dl ;32.存字符
inc si ;33.地址递增
inc di ;34.
cmp dl,0dh ;35.判断是否为回车符
jne lstr ;36.不等转
;37.
mov bl,0 ;38.补0
mov [di-1],bl ;39.
mov dx,offset tmp ;40.取文件名
mov cx,0 ;41.
mov ah,3ch ;42.建立文件
int 21h ;43.
mov dx,offset buffer ;44.取缓冲区数据地址
mov cx,512 ;45.
mov bx,ax ;46.
mov ah,40h ;47.写文件
int 21h ;48.
mov ah,3eh ;49.关闭文件
int 21h ;50.
mov ah,4ch ;51.返回系统
int 21h ;52.
code ends ;53.
end start ;54.程序结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -