请问这段汇编代码每一句的作用?

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:23:27
insert proc near
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
这是一个学生成绩管理系统的汇编代码的一部分(插入子程序)

insert proc near;类似于把以下的函数定义别名为near
push ax;把ax寄存器的内容写入到堆栈
push bx;把bx寄存器的内容写入到堆栈
push cx;把cx寄存器的内容写入到堆栈
push dx;把dx寄存器的内容写入到堆栈

mov dx,offset fname;把偏移量fname的数据写入到寄存器dx
mov al,2;把2写入到寄存器dl
mov ah,3dh;把3dh写入到寄存器ah
int 21h;int 21h是保留字,好像是终止的意思
mov bx,ax;把ax数据写到bx
clear1;调用clear1函数
set_p1 4;这个不清楚
call get_rec;调用get_rec函数
mov cx,0 ;0写入cx
mov dx,0;0写入dx
mov al,2;2写入al
mov ah,42h;42h写入ah
int 21h

mov cx,23 ;21写入cx
mov dx,offset buffer1;偏移量buffer1的数据写入dx
mov ah,40h ;40h写入ah
int 21h
mov ah,3eh;3eh写入ah
int 21h
set_p3
pop dx;从堆栈取出dx(最开始存入的最后一个)
pop cx;从堆栈取出cx(倒数第二个)
pop bx;从堆栈取出bx
pop ax;从堆栈取出ax
ret
insert endp ;类似于函