汇编语言设计课程设计指导书.doc
《汇编语言设计课程设计指导书.doc》由会员分享,可在线阅读,更多相关《汇编语言设计课程设计指导书.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计课程设计指导书一、课程设计的目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。二、课程设计内容(1)课题:磁盘文件管理系统要求:功能菜单的编制;向磁盘文件中写入信息;从磁盘文件中读出信息并显示。参考程序:data segment menu db 0dh,0ah, *,0dh,0ahdb * menu *,0dh,0ahdb *-*,0dh,0ahdb * 1.Create file *,0dh,0ahdb * 2.Write to file *,0
2、dh,0ahdb * 3.Read file *,0dh,0ahdb * 4.Quit *,0dh,0ahdb *-*,0dh,0ahdb * Choice(1-4) *,0dh,0ahdb *,0dh,0ah,$ pathname db D:IBM PC.TXT,00handle dw ? buffer1 db 60,0,60 dup(?) buffer2 db 60,0,60 dup(?)huanhang db ,0dh,0ah,$chose db 0dh,0ah,Please enter the digital from 1-4!,0dh,0ah,$ entery db 0dh,0ah,
3、Enter what you want to write to the file!(The length of the strings is under 60),0dh,0ah,$ str_ok1 db 0dh,0ah,Create !,0dh,0ah,$ str_ok2 db 0dh,0ah,Wtite to !,0dh,0ah,$ str_ok3 db 0dh,0ah,Read from !,0dh,0ah,$str_error1 db Create !$str_error2 db Open !$str_error3 db Write to !$str_error4 db Read !$s
4、tr_error5 db Exit from !$data endscode segmentassume cs:code,ds:datamain proc farstart:mov ax,datamov ds,axmov ax,0600hcall mecall choiceret main endpme proc nearmov ah,9lea dx,menuint 21hme endpchoice proc nearmov ah,1int 21hcmp al,31hje next1cmp al,32hje next2cmp al,33hje next3cmp al,34hje next4jm
5、p backnext1:call creathnext2:call entrynext3:mov ah,9lea dx,huanhangint 21hcall readnext4:mov ax,4c00hint 21hback:mov ah,9lea dx,choseint 21hcall meretchoice endpcreath proc nearmov ah,3chlea dx,pathnamemov cx,0int 21hjc error1mov handle,ax jmp exiterror1:mov ah,9lea dx,str_error1int 21h jmp exit1ex
6、it:mov ah,9lea dx,str_ok1int 21hexit1:call choicecreath endpentry proc nearmov ah,9 lea dx,enteryint 21hlea dx,buffer1mov ah,0ahint 21hsub ch,chmov cl,buffer1+1add dx,2call writh retentry endpwrith proc nearmov ah,3dh lea dx,pathnamemov al,1int 21hjc error2mov handle,axmov ah,40h lea dx,buffer1+2mov
7、 bx,handle mov cx,60int 21hjc error3mov ah,3ehmov bx,handleint 21hjc error4 jmp back1error2:mov ah,9lea dx,str_error2int 21h jmp exit2error3:mov ah,9lea dx,str_error4int 21h jmp exit2error4:mov ah,9lea dx,str_error5int 21h jmp exit2back1:mov ah,9lea dx,str_ok2int 21hexit2:call choicewrith endpread p
8、roc nearmov ah,3dh lea dx,pathnamemov al,0int 21hjc error5mov handle,ax mov ah,3fhlea dx,buffer2mov bx,handle mov cx,60int 21hjc error6mov ah,9 lea dx,buffer2int 21hjc error6mov ah,3ehmov bx,handleint 21hjc error7jmp back2error5:mov ah,9lea dx,str_error2int 21h jmp exit3error6:mov ah,9lea dx,str_err
9、or4int 21h jmp exit3error7:mov ah,9lea dx,str_error5int 21h jmp exit3back2:mov ah,9lea dx,str_ok3int 21hexit3:call choiceread endpcode ends end startend main(2)课题:实现加减乘除四则运算的计算器要求:能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:tasmjs 3+25参考程序:B_P EQU BYTE PTRW_P EQU WORD PTRD_P EQU
10、DWORD PTRCODE SEGMENTASSUME CS:CODE,DS:CODE ORG 100H;主程序开始NEWSTAR: JMP STAR EVENNUM1 DW 0,0NUM2 DW 0,0NUM3 DW 0,0JGV4 DW 0,0YSF LABEL WORDYSF1 DB 0YSF2 DB 0JUV DB 0UV DB 0;使DS:SI指向第一有效字符OVERS LABEL NEAR CLD PUSH AXOVERS1: LODSB CMP AL, JZ OVERS1 CMP AL,9 JZ OVERS1 DEC SI CMP AL,13 POP AX RET;输出一个制表符
11、TAB LABEL NEAR MOV AL,9 JMP SHORT DISP;输出一个回车换行符CRLF LABEL NEAR MOV AL,13 CALL DISP MOV AL,10;显示一个字符DISP LABEL NEAR PUSH AX PUSH DX MOV AH,2 MOV DL,AL INT 21H POP DX POP AX RET;检查是否为运算符ISYSF LABEL NEAR CLD LODSB CALL ISJJ JZ ISYSF1 CALL ISII JZ ISYSF1 DEC SIISYSF1: RET;检查是否是加减运算ISJJ LABEL NEAR CMP A
12、L,+ JZ ISYSF1 CMP AL,- RET;检查是否为乘除运算ISII LABEL NEAR CMP AL,* JZ ISYSF1 CMP AL,/ JZ ISYSF1 CMP AL, RET;数据输出;CX=10 十进制;CX=16 十六进制DOUT LABEL NEAR PUSH AX PUSH BX PUSH DX PUSH BP XOR BP,BPDOUT1: INC BP PUSH AX MOV AX,DX XOR DX,DX DIV CX MOV BX,AX POP AX DIV CX PUSH DX MOV DX,BX OR BX,AX JNZ DOUT1DOUT2:
13、POP AX ADD AL,0 CMP AL,9 JBE DOUT3 ADD AL,A-9-1DOUT3: CALL DISP DEC BP JNZ DOUT2 POP BP POP DX POP BX POP AX RET;输入数据在DX:AX中返回;CX=0 数据为10进制;CX#0 数据为16进制DATE LABEL NEAR PUSH BX PUSH BP PUSH DI XOR AX,AX XOR DX,DXDATE1: MOV DI,AX LODSB CMP AL,0 JB DATE7 CMP AL,9 JA DATE6DATE2: AND AX,0FH SHL DI,1 RCL
14、DX,1 MOV BX,DI MOV BP,DX SHL DI,1 RCL DX,1 SHL DI,1 RCL DX,1 JCXZ DATE3 SHL DI,1 RCL DX,1 Jmp short DATE4DATE3: ADD DI,BX ADC DX,BPDATE4: ADD AX,DI ADC DX,0 JMP DATE1DATE5: ADD AL,9 JMP DATE2DATE6: JCXZ DATE7 CMP AL,A JB DATE7 CMP AL,F JBE DATE5 CMP AL,a JB DATE7 CMP AL,f JBE DATE5DATE7: MOV AX,DI D
15、EC SI OR DI,DX POP DI POP BP POP BX RET;数据1及数据2根据YSF1进行加减运算JSJJ LABEL NEAR MOV AX,NUM2 MOV DX,NUM2+2 CMP YSF1,+ JZ JSJJ1 SUB NUM1,AX SBB NUM1+2,DX JMP SHORT JSJJ2JSJJ1: ADD NUM1,AX ADC NUM1+2,DXJSJJ2: RET;数据1及数据2根据YSF1进行乘除运算JSII1 LABEL NEAR MOV BX,OFFSET NUM1 JMP SHORT JSII2_1;数据2及数据3根据YSF2进行乘除运算JSI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 设计 课程设计 指导书
限制150内