⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keti3_2.sub

📁 1、汇编课程设计 2、包括如下:(1)、简单文件管理 (2)、学生成绩管理 (3)、简单加法器 3、文档中附有代码
💻 SUB
字号:
search_cmp       proc    near
	;功能: 查找 及 显示
	;入口参数:si_si字符串存放地址
	;	cx_cx=    字符串长度
	;	pointadd=相对偏移量
	;返回值:ax=0000没找到记录时
	;---------------
	mov	filerecord,0
	mov	fileend,0
	mov	searchrecord,0
	;---------------
	mov	cx,0
	mov	ax,4200h
	mov	dx,10
	int	21h;使文件指针指向第一项记录
	;--------------
	search_loop:
	;--------------
	lea	dx,recordpl
	mov	cx,80
	mov	bx,handle
	mov	ah,3fh	
	int	21H      ;读一项记录
	;--------------
	cmp	ax,0;是否到文件末尾
	jne	cmp_1;没
	mov	fileend,1;到了-〉文件结束标志=1
	cmp_1:
	lea	dx,recordpl
	mov	di,dx
	add	di,pointadd
	mov	cx,cx_cx
	mov	si,si_si
	REP	CMPSB
	cmp	cx,0
	je	record_print;找到>>>>>>>>>>>>
	;否则:------------------------------------
	cmp	fileend,1
	je	no_search;直到文件结束都没找到
	inc 	filerecord;下一记录
	jmp	search_loop	
	;------------------------------------------
	record_print:        ;打印这条记录>>>>>>>>>
	call	tablehead    ;打印表头
	call	recordtype   ;打印这条记录
	mov	ax,filerecord
	mov	searchrecord,ax;保存这条记录号
	inc	filerecord  ;记录数加一
	cmp	fileend,1;文件是否结束
	je 	search_exit;是 
	jmp	search_loop 
	;继续查找 直到文件结束
	;-------------------------------------------
	no_search:
	;---------------
	mov	al,02h	
	call	scrn
	mov	row,23
	mov	col,00h
	call	curs
        lea     dx,nosearch
	mov	ah,09h
	int	21h
	;显示:没有相关的记录
	;-------------
	call	getch
	mov	ax,0000
	ret;返回值 0000
	search_exit:
	mov	al,05h
	call	scrn	
	mov	col,0
	mov	row,20
	call	curs
	mov	ax,1
	ret
search_cmp	endp
;------------------------------------------
;查找功能完成
;------------------------------------------
rewriterecord	proc	near
	;重写某记录
	mov	al,02h	
	mov	bh,0fh
	call	scrn_bx
	mov	row,23
	mov	col,00
	call	curs
	;
	lea	dx,rewritemeg
	;'Do you want eo rewrite this reord?[y\n]:'
	mov	ah,9
	int	21h
	;提示信息:是否重写 默认否
	;-----------------------
	call	getch
	cmp	al,'y'
	je	change_record
	cmp	al,'Y'
	je 	change_record
	ret  ;不重写 返回
	;-----------------------
	change_record:    ;记录重写
	mov	ax,searchrecord
	mov	filerecord,ax
	call	in_record;显示:是第几记录
	;输入一条记录
	;保存改正后的结果
	;改写文件指针到需要改写的地方
	;具体由searchrecord确定
	mov	ax,searchrecord
	mov	dx,0
	mov	cx,80
	mul	cx
	add	ax,10
	;ax指向要改写的记录
	mov	bx,handle
	mov	cx,0000
	mov	dx,ax
	mov	al,00
	mov	ah,42h
	int	21h;使文件指针指向要改写的记录
	call	saveinf;保存这条记录
	lea	dx,newinf6
	mov	ah,09h
	int	21h;显示:该记录以成功保存
	;------------------
	mov	al,03
	call	scrn
	mov	row,22
	mov	col,00
	call	curs
	;光标定位 卷屏
	;------------------
	call 	getch
	ret
rewriterecord    endp
;--------------------------------------
recordtype	proc	near;显示一条记录
	mov	al,01h
	call	scrn_bx
	mov	row,24
	mov	col,00
	call	curs
	;光标上卷一行
	lea	dx,recordpl
	mov	ah,09h
	int	21h;打印记录
	ret
recordtype	endp
;—————————————————————————
tablehead	proc	near
	;显示表头
	mov	al,02h
	call	scrn_bx
	mov	row,23
	mov	col,00
	call	curs
	;
	lea	dx,nam_in
	mov	ah,09h
	int	21h
	mov	cx,0006h
	call	drow_line
	;
	lea	dx,tel_in
	mov	ah,09h
	int	21h
	mov	cx,0008h
	call	drow_line
	;
	lea	dx,mobile_in
	mov	ah,09h
	int	21h
	mov	cx,0006h
	call	drow_line
	;
	lea	dx,adress_in
	mov	ah,09h
	int	21h
	mov	cx,000eh
	call	drow_line
	;
	lea	dx,mail_in
	mov	ah,09h
	int	21h
	mov	cx,0002h
	call	drow_line
	;
	ret
tablehead	endp
;---------------------------------------

;------------------------------------
drow_line	proc	near
	push	dx
	push	ax
	mov	dl,'='
	mov	ah,02h
	dorw_loop:
	int	21h
	loop	dorw_loop
	pop	ax
	pop	dx
	ret
drow_line       endp
;---------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -