文本方式下字处理程序的设计与实现_第1页
文本方式下字处理程序的设计与实现_第2页
文本方式下字处理程序的设计与实现_第3页
文本方式下字处理程序的设计与实现_第4页
文本方式下字处理程序的设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号:0120610340704课程设计题目文本方式下字处理程序的设计与实现学院计算机科学与技术学院专业计算机科学与技术专业班级计算机0607姓名陈善祥指导教师陈先桥2009年 1月15日课程设计任务书学生姓名: 陈善祥专业班级:计算机0607指导教师:工作单位:计算机科学与技术学院题目:文本方式下字处理程序的设计与实现初始条件:理论:完成了汇编语言程序设计课程,对微机系统结构和80系列指令系统有了较深入的 理解,已掌握了汇编语言程序设计的基本方法和技巧。要求完成的主要任务:实践:完成了汇编语言程序设计的4个实验,熟悉了汇编语言程序的设计坏境并掌握了汇 编语言程序的调试方法。(包括课程设计工作

2、量及其技术要求,以及说明书撰写等具体要求)理解键盘接口的工作原理,掌握bios键盘i/o功能,掌握复杂内存数据结构的定义和管 理方法。具体的设计任务及要求:1)清晰目易于操作的用户界面;动态显示光标的当前位置;2)在文本编辑区接受并保存输入信息;3)光标上移,卜移,左移,右移;4)允许删除当前光标后的字符;5)将编辑文本存盘,读出并显示便盘中的指定文件。(任选)在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的貝体要求请见课程设 计指导书。阅读资料:1)ibm-pc汇编语言程序设计实验教程3. 3节2)ibmpc 71編语言程序设计(第2版)9.1节时间安排:设计安排一周:周1、周

3、2:完成系统分析及设计。周3、周4:完成程序调试,和验收。周5:撰写课程设计报告。指导教师签名:年月日系主任(或责任教师)签名:年月日文本方式下字处理程序的设计与实现1设计内容及要求;理解键盘接口的工作原理,掌握bios键盘i/o功能,掌握复杂内存数据结构 的定义和管理方法。具体的设计任务及要求:1 清晰且易于操作的用户界而;动态显示光标的当前位置;2.在文本编辑区内接受并保存输入信息;3在文木编辑区内允许光标上移,下移,左移,右移;4.允许删除当前光标后的字符;5将编辑文本存盘,读岀并显示皱盘中的指定文件。2.设计中使用的关键技术和方法;汇编语言的中的各种寻址存储等命令及bios中断和dos

4、中断调用窗口的建立功能键的定义了程序的调用等等3设计方案说明:包括模块层次图和各模块说明(功能 定义、入口参数和出口参数等),详细的算法描述(流 程图或伪代码),主要数据结构的定义和说明,程序界 面的描述;模块说明:red_chr macro ;读取字符宏定义string macro pl ;显示字符串信息win macro oprl ,opr2,opr3,opr4,opr5,opr6 ;建 也窗 口pos_curse macro opl,op2,op3 ;定义光标位置pos get macro ;显示光标位置data segment ;定义数据段main proc far ;主禾呈序wind

5、ow proc near ;创建窗口子程序 edit proc near ;编辑输入的字符 menu_show proc near ;显示菜单 menu_file:;定义菜单的背景字体颜色 win 0,06h,2,l,7,ll ;建立菜单子窗口 manu_n:;开始定义各个菜单项 com proc near ;定义功能键 call fuc_key ;调用功能子键 fuc_key proc near ;功能键子程序 savedisplay proc near ;保存输入的文本 new proc near ;新建文件 open proc near ;打开文 件 save proc near ;保存

6、文件 saveas proc near ;另 存为 win3 proc near ;显示日期模块层次图:程序界面如下图所示:macdate:2009/01/15lin:001/con:000本程序界而简洁明了,操作起来i分容易上手,满足要求。4.测试及评估;4.1测试:编译成功后点击运行,出现下而的界而:c c: hnd0¥ssystem32cbd. exefile edit format options helpfl-file f2-edit f3-fornat f4-0ptions f10-help esc-quit将光标通过上下左右方向键移到屏幕屮间某个位置,随便输入一些文字,

7、再按 f1键,通过上下方向键选择“save as”,岀现下而的界而:输入:d:chen. txt,即口j把刚才的文字内容保存在d盘的一个叫chen. txt的记 事本文件中。到d盘就可找到该文件,如下图:打来该文件发现和在刚才的界面中输入的内容完全一致:chen -记事本口回区)文:件0)编辑0)格式© 查看辺帮助qdsdjhfdkejjkdfjk|3|说明本程序能够接受和保存输入信息,符合要求。再在d盘新建一个叫123. txt的文件,在里面随使输写文字,例如hahahahaha和z前在123. txt文件里输入的内容-致,说明本程序能读出并显示硬盘中的指 定文件,符合要求。按f1

8、0选中command冋车可显示帮助信息:date:2009/01/15ct c:¥indotssyste>32c>d. exefile edit fornat options helpedit commandshome moue to the start of the current line- end -move to the end of the current line.delete -delete the character that the cursor is on. backspace -delete the charact" to the left

9、 o£ the cursor. ctrl+up -scroll up one line.ctrldown -scroll down one line.ctrl+left 一moue left one word.ctrl+right -moue right one word.enter 一氏a new line.tab -moue the cursor to next tab stop.lin:001/com:0004. 2评估:本程序能完全满足课程设计的要求,操作界面简洁明了,能保存输入的信息和读取存储在硬盘上的指定文件,功能还算完善。在一些小的方面还需耍改进和完善。5设计心得:包括

10、设计中遇到的问题及思考,对该程序进一步改进扩展的设想;5. 1遇到的问题及思考:刚开始弄时,根本就是一头雾水,看着那长长的代码不知所措。后来对照这代码 的注释和参照课本上的一些实例,慢慢的明口了一些,比如说哪些代码是定义数据段, 哪些代码是用来调用子程序的,哪些代码是定义窗体的。述有一些重要的但平吋很少 用到的一些命令,例如:mov ah,0int 16h开始不知道这命令什么意思,查了书才知道是从键盘读字符,而凡这两条命令是搭 配起来用得,如果把第一句改成mov ah, 1的话,命令的意思就变成了取键盘缓冲区 状态,差别就大多了,所以汇编语言编程是要很注意细节的。5.2对程序进一步改进扩展的设

11、想:程序屮一个明显的不完善的地方就是:按f1后再按上下方向键时,屏幕屮的光 标会跟着一起跳动。保持光标位置在按f1键前后一致是本程序需要改进的地方,这 个述在思考中,相信能够解决。6致谢,参考文献(按公开发表的规范书写);6. 1致谢:感谢学院组织这次汇编课程设计,让我的汇编能力在实践中得到锻炼,让我明 白了理论联系实际是多么的有用。感谢汇编老师这一年来对我的谆谆教导,对我学 习的督促和鼓励。感谢宿舍室友的人力帮助,谢谢你们帮忙查询资料帮忙解释我不 懂的地方,让我加深了对编程的理解。6. 2参考文献:清华大学岀版社1bm-pc汇编语言程序设计沈美明、温冬婵著清华大学出版社tbm-pc汇编语言程

12、序设计实验教程沈美明、温冬婵著7附录:源程序清单。red_chr macro取字符宏定义mov ah, 0 ;返回的al二字符码,ah=j |描码u" j"j" u" j" u" j" j" *?x "u"彳、彳j彳、彳、彳、彳、彳、彳、彳j彳j z|x 彳、data segment ;>j义数据段int 16hflag dwendmcolor 1dbstring macro p;显示字符串信息mov ah, 9lea dx, plint 21hendmwinmovmovmovmacro

13、oprl, opr2, opr3, opr4, opr5, opr6 ;建立窗丨 iah, 06h ; oprl=±卷行数,opr2=行属性al, opr 1 ;opr3二左上角行号,opr4二左上角列号bh, opr2 ;opr5-右下角行号,opr6=右下角列号color 2color 3menu dbdbdb32 dupc32 dup(,32 dup('')black_to_blue 13, 10/$'),' red_to_white ', 13,10,'$' '),'cyan to red ',

14、13, 10,' $''file edit format options help $'j fl-file f2edit f3-format f4-0ptionselo-help esc一quit','mess dbdbnew,13, 10,'$'dbopen',13, 10,,$'dbsave',13, 10, xdb9saveas ', 13, 10,'$'dbexitdb6dup(''),' cut 13, 10,'$'db6dupc&#

15、39;),'copy ',13, 10,,$,db6dup('),' paste',13, 10,$db6dupc'),'clear',13, 10,'$'rnanu 1manu 2manu 3manu 5manu 6manu 7manu 8manu_4movcl, opr4manu10db12dupcfont ',13, 10,' $'movdh, opr5manu11db20dupccolor .,13, 10, ymovdl, opr6manu_.12db20dupcsetting13

16、, 10, yint10hnkmu_.13db29dupccommand',13,10,$endmmanu14db29dup('about ' j,13,10,'$'ch,opr3movhandle dw ?manu_9messl db ' pleasepos_curse macro opl, op2, op3 ;定义光标位置ah, 2 ;opl=页号.0p2二行号.0p3二列号mess2 db ' pleasemovmcss3 dbpleasemovbh,oplmess4 db 1 the f i leinput a file ninp

17、ut a saving file name:1, * $? input an opcn file name:>,1 is not saved! save it now? (y/n):movdh, op2movdl, op3intlohendmpath db 50 dup(o),' $' buffer db 2000 dup(?) bak db 3850 dup(o)line db ?posget macro ;显示光标位趕 mov ah, 03h ;dh二行号,dl二列号 mov bh, 0int lohrow db ?char db ?help maso db '

18、; about editor $' hclp_masl dbendm*$';帮助内容;*help mas2 db '* thanks for using this editor! *$' help mas3 db '* *$'hclp_mas4 db ' * may you have a good time *$'mov ds, axcal 1 window ;创建窗口子程序 call edit ;编辑输入的字符 retmain ondpwindow proc near ;创建窗口子程序 win 0,14h, 1,0,24,79

19、;定义窗口背景 win 1, 3fh, 0, 0, 0, 79win 0, 3fh, 24,0,24, 79show:;显示菜单位置及内容pos_curse 0, 0t 1string monushow_2:;显示状态栏位置及内容poscursc 0, 24, 1string messcall win3 ;显示日期pos curse 0, 1, 0call win4 ;显示行/列poscursc 0, 1, 0mov row, dh ;dh二 1mov line,dl ;dl=0retwindow endpedit proc near ;编辑输入的字符chargct:;读字符call comr

20、etedit ondpiiicnu_shov proc near ;显示菜单. call savedisplaypush exemp ah,3bhhelpmaso db'*$,help mas6 db '* ms-dos editor *$'help_mas7 db '* copyright <zzy> 200& 12 *$'hclp_mas8 db ' * <0k> *$'help_mas9 db,u> u> u> u> u> u> u> u> u>

21、u> u> u> u> u>*$,com_messo db ' edit commands $'com_messl dbcom_mess2 db ' home -move to the start of the currenl line. $'com_mess3 db ' end -move to the end of the current line. $'com mess4 db ' delete -delete the character that the cursor is on. $'com

22、_mess5 db ' backspace -delete the character to the left of the cursor$'com mess6 db ' ctrl+up -scrol1 up one 1ine $' com mess7 db ' ctr 1+down -scroll down one 1 ine s' com_mess8 db ' ctrl+left -move left one word $' com_mess9 db ' ctrl+right -move right one word

23、了 comjnesslo db ' enter -start a new line $' comjncssll db ' tab -move the cursor to next tab stop. $'date db ' date:0000/00/00$'调用日期 hangl ie db ' lin:000/com:000$'行/列 time db ' time:00:00:00$'调用时间data ends、g" j" j*j"j* j#、g“ "j* j# j.&quo

24、t;卜打* "卜"卜彳、"卜彳* "卜彳、"卜彳* "卜彳、"卜彳、"卜彳* "卜彳* "卜彳、"卜彳、"卜彳、"卜打、彳、彳、彳、打、彳、打、彳、彳、彳、彳、彳、打、彳、打、彳、彳、彳、彳、彳、卜卜尢尢士 尢卜尢卜卜卜尢尢尢尢尢卜尢尢尢土 +code segmentmtiin proc feir ;丄程序 assume cs:code, ds:data start:push dssub ax, axpush axmov ax, deltajz menu_filel

25、 ; 1订功能 1;ilecmp ah,3chjz menu edit 1 ;1;2功能£4讥cmp aht 3dhjz menu.format 1 ; f3功能formatcmp ah, 3chjz menu_options 1 ; 1;4功能optionscmp ah, 44hjz menu helpl ;f10功能helpjmp char_get menu filei:jmp menu file mcnucditi:jmp menu_cdit menu_formatl:jmp menu_format menu_optionsl:jmp menu_options menu hel

26、pl:jmp menu help menufile:;定义菜单的背景字体颜色 pos_get push dxwin 0, 06h, 2, 1,7, 11 ;建立菜单子窗口 win 0, 65h, 1, 0, 6, 10pos_curse 0, 1, 0string manualstring manu_2string rikinu_3string manu_4string nrnnu 5pop dxdoc dlpos_curse 0, dh, dlcopmar:red chr ;从i/o读取字符cmp ah, 50h ;向 fjz manu_njmp manu_hidmanu_hid:;菜单隐藏

27、win 0, leh, 1, 1, 7, 50cal 1 backdisplayjmp chargetmanun:;开始定义各个菜单项win 0, 65h, 5, 1, 5, 8 poscurse 0, 5, 0 string manu 5 win 0,65h,2, 1,2,8 pos curse 0, 2, 0 string manu_2 win 0, 06h, 1, 1, 1, 8 poscurse 0, 1, 0 string manu 1 red chr cmp ah, 48h ;向上 je manu_ee ;cxit cmp al, odh ;按冋车键选中 jz new 1 ;nev

28、 cmp ah, 50h ;向下 jc manu_o ;opcn jmp manu_hid manuee:jmp manure ;new to exit manuno:jmp manun newl: jmp newmanu_nn:jmp manu_n ;open to new nrnrm o:win 0, 65h, 1, l 1, 8 poscursc 0, 1, 0 string nkinu_l win 0, 65h, 3, 1, 3, 8 pos curse 0, 3, 0 string manu_3 win 0, 06h, 2, 1, 2, 8 pos_curse 0, 2, 0 str

29、ing manu_2 red chr cmp ah, 48h jc manu_nn ;rww cmp al,odh jz open 1 ;open cmp ah,5oh je manu_s ;save jmp manu_hid open 1: jmp open nianu oo:jmp nkinu o ;save to open iminu_s:win 0, 65h, 2, 1, 2, 8 poscurse 0, 2, 0 string manu 2pos_curse 0, 3, 0string manu_3red_chrcmp al, odhjz save 1 ;savecmp ah, 48

30、hje manuoo ;opencmp ah, 50hje manu a ; savetisjmp manu_hidsave_l: call savemanuss:jmp manu_s :saveas to savemanu a:win 0, 65h, 3, 1,3,8pos_cursc 0, 3, 0string manu_3win 0, 65h, 5, 1, 5, 8pos curse 0, 5, 0string mcinu 5win 0, 06h, 4, 1, 4, 8pos_curse 0, 4, 0string manu_4redchrcmp ah, lchjz save_2 ;sa

31、veascmp ah, 48hje manu_ss ;savecmp ah, 50hje nkinu_e ;exitjmp manu_hidmanti n2:jmp manu nmanu_as:jmp manu_asave_2: call saveasmtinue:win 0, 65h, 4, 1,4,8pos curse 0, 4, 0string manu_4win 0, 65h, 1, 1, 1, 8pos curse 0, 1, 0string manu 1win 0, 06h, 5, 1, 5, 8pos curse 0, 5, 0string mtmu 5red chrcmp ah

32、,50hje manu_n2 ;novcmp ah, 48hje manu as ;saveascmp ah,lchjc exit ;cxitjmp manu_hidexit:call backdisplaywin 0, 07h, 15, 10, 17,61win 0,24h, 14,9, 16, 60niov dh, 15mov dl, 9mov bh, 0mov ah, 2int loh lea dx,mcss4mov ah,9int 21hmov ah, 1int 21h cmp al,79hjnz qcall quiltq: cmp al, 6ehjz quitquit: win 0,

33、 07h, 0, 0, 24, 79pos_curse 0, 0, 0mov ah,4chint 21hret ;结束,退出程序menu_edi t:;选屮edit菜单pos getpush dxwin 0,06h,2, & 6, 18 ;建立菜单子窗口win 0, 65h, 1, 7, 5, 17pos_curse 0, 1, 0string manu 6string rikinu_7string manu_8 string manu_9 pop dx dec dlposcursc 0, dh, dl red_chr :从i/0读取字符 cmp ah, 50h ;向卜 jz manu

34、 copy jmp manu_hid manu_copy:;开始定义各个菜单项 win 0, 65h, 4, 7, 4, 17 pos curse 0, 4, 0 string manu_9win 0, 65h, 2, 7, 2、17poscurse 0, 2, 0 string manu 7 win 0, 06h, 1,7, 1, 17 pos_cursc 0, 1, 0 string manu_6 redchr cmp ah, 48h ;向上 je manu cl earl ;cletir cmp al,0dh ;按回车键选中 jz manu_copy ;copy cmp ah, 50h

35、;向 f je manu一cut ;cut jmp manu_hid manure1ear1:jmp manure1ear manti copyl: jmp nrnnu copy manu_cut:win 0, 65h, 3, 7, 3, 17 pos_curse 0, 3, 0 string manu_8 win 0, 65h, 1, 7, 1, 17 pos_curse 0, 1, 0 string manu_6 win 0, 06h, 2, 7, 2, 17 pos_curse 0, 2, 0 string nrnnu 7 red_chr cmp ah, 48h ;向上 je manu

36、copyl ;copy cmp al, odh ;按回车键选中 jz manucut :cut cmp ah, 50h ;向下 je manu paste ;paste jmp nkinu hid manu_cutl:jmp manu_cul manu_paste:win 0,65h,4,7,4, 17 pos curse 0, 4, 0 string mtmu 9 win 0, 65h, 2, 7, 2, 17 pos_curse 0, 2, 0 string manu_7 win 0, 06h, 3, 7, 3, 17 pos curse 0, 3, 0 string manu_8 red

37、_chr cmp ah, 48h ;向 i: jc manu.cutl ;cut cmp al, odh ;按冋车键选中 jz manu_paste ;paste cmp ah, 50h ;向下 je manu_clear ;clear jmp manu_hidmcinu_pastel: jmp mzinu_paste mtmu_copy2:jmp manu_copy miirm clear:win 0, 65h, 1, 7, 1, 17 poscursc 0, 1, 0 string nkinu_6 win 0,65h, 3, 7, 3, 17 pos curse 0, 3, 0 strin

38、g manu_8 win 0, 06h, 4, 7, 4, 17 pos_curse 0, 4, 0 string nuinu 9 rcd_chr cmp ah, 48h ;向上 je manupastel ;paste cmp al, odh ;按回车键选中 jz manu clear ;clear cmp ah, 50h ;向下 je manu_copy2 ;copy jmp manu_hidmenuformat:pos_getpush dxwin 0, 06h, 2, 14, 3, 24 ;建立菜单子窗口win 0, 65h, 1, 13, 2, 23pos_curse 0, 1, 0s

39、tring manu_10pop dxdec dlposcurse 0, dh, dlred_chr ;从i/o读取字符cmp ah, 50h ;向 fjz manu_font ;fontjmp manu_hidmanu_font:win 0, 06h, 1, 13, 1,23pos curse 0, 1, 0string manual0red_chrcmp al, odh ;按回乍键选中jz fontl :fontjmp numu hidfontl: call font ;调用font子程序,获取出前时间(子 程序接口,亦可用于选择字型号);fontl: jmp manuhid menu_o

40、ptions:pos_ getpush dxwin 0, 06h, 2, 22, 4, 32 ;建立菜单子窗口win 0, 65h, 1,21,3,31pos_curse 0, 1, 0string nrnnu 11string manu_12pop dxdec dlpos_curse 0, dh, dlred chr ;从i/o读取字符cmp ah, 50h ;向 fjz manucolorjmp manu hidnianu color:pos_curse 0, 1, 0string mar)u_llredchrcmp ah, 48h ;向上je manu setting ;settingc

41、mp ah, 4dh ;向右jz manu_colorl ;colorcmp al, odh ;按冋车键选中jz manu_colorl ;color/需耍调用color二级子菜单cmp ah, 50h ;向下je manu_setting ;settingjmp manuhidmanucolorl:jmp manusubcolormzinu .setting:win 0,65h, 1,21, 1,31pos curse 0, 1, 0string manu_llwin 0, 06h, 2,21,2,31pos_curse 0, 2, 0string manu_12red chrcmp ah,

42、 48h ;向上jc manu.colorll ;colorcmp al, odh ;按冋车键选中jz manu_setting ;settingcmp ah, 50h ;向下je manu_colorll ;colorjmp manu_hidmcinu_colorll: jmp manu_color manu_subcolot:pos_getpush dxwin 0, 06h, 3, 33, 6,51 ;建立菜单子窗口 win 0, 65h, 2, 32, 5, 50pos_curse 0, 2, 0string color_lstring color_2string color 3manu

43、chcolorl:mov flag, 1win 0, 06h, 1,21, 1,31 pos_cursc 0, 1, 0 string nkinu_llipop dxdec dlpos_ curse 0, dh, dl red_chr ;从i/o读取字符 cmp cih, 50h ;向 f jz manu_subcolorl cmp ah, 4dh jz manusubcolorl jmp manu hid manu subcolorl: win 0, 65h, 4, 32, 4, 50 pos_curse 0t 4, 0 string color_3 win 0, 65h, 3, 32, 3

44、, 50 pos curse 0, 3, 0 string color_2 win 0, 06ht 2, 32, 2, 50 pos_curse 0, 2, 0 string color_l1win 0, 65h, 2,21,2,31 ;保留原有菜单 pos curse 0, 2, 0string manu 12win 0, 06h, 1,21, 1,31 pos_curse 0, 1, 0 string manu_ll red chrcmp ah, 48h ;向上je manu_subcolor33 ;cmp al, odh ;按冋年键选屮jz manu chcolorl ;cmp ah,

45、50h ;向 bjo manu_subcolor2 ;jmp manu hidmanu subcolor33:jmp manu subcolor3;jmp manu_hidcal 1setcolor ;/manu subcolor2:win 0, 65h, 4, 32, 4, 50pos_curse 0, 4, 0string color 3win 0, 65h, 2, 32, 2, 50pos curse 0, 2, 0string colorlwin 0, 06h, 3, 32, 3, 50poscurse 0, 3, 0string color 2iwin 0, 65h, 2,21,2,

46、31 ;保留原有菜单pos curse 0, 2, 0string manu 12win 0, 06h, 1,21,1,31pos_curse 0, 1, 0string nuinu_ll red_chrcmp ah, 48h ;向 hje manu_subcolorll ;cmp al, odh ;按|叫车键选中jz manu chcolor2 ;cmp ah,50h ;向 bjc manu subcolor3 ;jmp manu_hidmanu subcolorl 1: jmp nkinu subcolorlmanu_chcolor2:mov flag, 2;jmp manu hidcal

47、 1 setcolori/manu subcolor3:pos_curse 0, 2, 0string colorlwin 0, 06h, 4, 32, 4, 50pos_curse 0, 4, 0string color 39win 0, 65h, 2, 21, 2, 31 ;保留原有菜单pos curse 0, 2, 0string manu 12win 0, 06h, 1,21, 1,31pos_curse 0, 1, 0string manual1 red chrcmp ah, 48h ;向上je manu_subcolor22 ;cmp al, odh ;按回乍键选中jz manu

48、chcolor3 ;cmp ah, 50h ;向 fje manu_subcolorlil ;jmp manu_hidmanu_subcolor22:jmp manu一subcolor2 manusubcolorl11:jmp manu一subcolor1 manu_chcolor3:mov flag, 3;jmp manu_hidsetcolor ;/call/mcnuhclp:pos_getpush dxwin 0,06h,2,31,3,40 ;建立菜单子窗口win 0, 65h, 1, 30, 2, 39poscursc 0, 1, 0string manu 13string manu

49、14jz manu_commandjmp manu_hidmanu command:win 0, 65h, 2, 30, 2, 39pos_curse 0, 2, 0string manuwin 0, 06h, 1, 30, 1, 39pos curse 0, 1, 0string mtmu 13rcd_chrcmp ah,48hjz manuabout :aboutcmp al, odhjz manu_conunand0 ; conunandcmp ah,50hjz marrn about :aboutjmp manu_h i dmanu command0:callconunand !/ii

50、iiiiiiiiiiiiiiii/t调用command斤菜单jmp manu hidmanu about:win 0, 65h, 1, 30, 1, 39pos_curse 0, 1, 0string manu_13win 0, 06h, 2, 30, 2, 39pos_curse 0, 2, 0string manu_14red_chrcmp ah,48hjz manu_command1 ;commandcmp al,odhjz manuabouto :aboutcmp ah,50hjz manu commandl ;commandjmp manu_hidmarm_commandl: jmp

51、 manu_coinmandmanu_about0:callhelp :/调用about f菜单pos getjmp manu_hidmenushow endpmov row, dh mov dl, line cmp line, 0 jnz direct mov line,79 dec rowcmp row, 0com proc near ;足义功能键pos_get ;根据键盘的输入,确定文本编辑的各种功能je stop2mov row, dhjmp firstmov line,dlstop2:first:mov row, 1pos curse 0, row, 1 inejoo:mov ah,

52、 0int 16h ;从键盘读字符ah-扌i描码字符码jmp firstdirect:dec linecall wind ;显示光标位置jmp firstright:;光标右移 pos_getmov row, dhmov dl,linecmp line,79jnz dircct2mov line, 0inc rowcmp row, 24je relurnsljmp firstdirect2:inc linecal 1 win4jmp firstcntcr_2:jmp enter up:;上移光标 pos_gctmov row, dhmov dl,linedec rowcmp row, 0je

53、stoplcall win4jmp firststopl:push axlea dx, buffermov bufferbx, alinc bxcmp ah, 48h ; i:jz up_lcmp ah, 50h ;下jz down_lcmp ah, 4bh ;左jz leftcmp ah, 4dh ;右jz rightcmp ah, lch ;回车jz enter 1call fuc_key ;调用功能子键mov ah, 2mov dl, alint 21hpop axcal 1 menu _shovjmp j6 ;结束downl:jmp downenter 1:jmp enter_2up_l:jmp upleft:;光标左移mov row, 1jmp firstdown:;下移光标pos_ getmov row, dhmov dl,lineinc rowemp row, 24je stop3call windjmp firststop3:mov row, 23jmp firstreturnsl:jmp returns enter:;回车换行 pos getmov row, dhmov line, dlinc rowemp row, 24 je returnsmov line, 0call windjmp fir

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论