请问这段汇编代码每一句的作用?
- 提问者网友:喧嚣尘世
- 2021-04-15 09:34
push ax
push bx
push cx
push dx
mov dx,offset fname
mov al,2
mov ah,3dh
int 21h
mov bx,ax
clear1
set_p1 4
call get_rec
mov cx,0 ;move file pointer to end
mov dx,0
mov al,2
mov ah,42h
int 21h
mov cx,23 ;write file
mov dx,offset buffer1
mov ah,40h
int 21h
mov ah,3eh
int 21h
set_p3
pop dx
pop cx
pop bx
pop ax
ret
insert endp
- 五星知识达人网友:话散在刀尖上
- 2021-04-15 10:55
;功能: 插入一条记录
;入口: fname,文件名缓冲区
; buffer1,记录缓冲区
;出口: 无
;调用: get_rec,读取一条记录
;占用: ax,bx,cx,dx
insert proc near ;定义子程序名
push ax ;寄存器压栈
push bx ;寄存器压栈
push cx ;寄存器压栈
push dx ;寄存器压栈
mov dx,offset fname ;指定文件名
mov al,2 ;打开模式
mov ah,3dh ;DOS功能调用,功能号3dh,打开文件
int 21h ;DOS系统功能调用
mov bx,ax ;得到打开的文件号
clear1 ;一个宏调用,在其它程序部分定义的
set_p1 4 ;一个宏调用,在其它程序部分定义的
call get_rec ;调用子程序,读取一条记录
mov cx,0 ;move file pointer to end
mov dx,0 ;CX:DX 位移量
mov al,2 ;从文件尾向前移
mov ah,42h ;DOS功能调用,功能号42h,移文件指针
int 21h ;DOS系统功能调用
mov cx,23 ;write file,CX要写的字符数
mov dx,offset buffer1 ;要写内容的缓冲区
mov ah,40h ;DOS功能调用,功能号40h,写文件
int 21h ;DOS系统功能调用
mov ah,3eh ;DOS功能调用,功能号3eh,关闭文件
int 21h ;DOS系统功能调用
set_p3 ;一个宏调用,在其它程序部分定义的
pop dx ;寄存器出栈
pop cx ;寄存器出栈
pop bx ;寄存器出栈
pop ax ;寄存器出栈
ret ;子程序返回
insert endp ;子程序代码结束