资源描述:
《汇编语言菜单系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实训一光标漫游⒈问题在25行80列的显示屏内,通过按键“→、←、↑、↓”来改变光标的位置,如按“→”键则光标往右侧走一列,按“↑”键则光标往上走一行的位置,最终通过“Esc”结束程序。⒉边界问题要处理好特殊情况:①光标在第一行,再按“↑”键时;②光标在第一列,再按“←”键时;③光标在第25行,再按“↓”键时;④光标在第80列,再按“→”键时。⒊边界问题处理采用折返的方式:①光标在第1行,再按“↑”键时进到第25行;②光标在第1列,再按“←”键时进到第80行;③光标在第25行,再按“↓”键时进到第1行;④光标在第80列,再按“→”键时时
2、进到第1列。⒋实验基础①读键:用int16h的0号功能调用掌握扫描码和字符码的区别Movah,0Int16h;返回AH=扫描码,AL=字符码②定位光标:用int10h的2号③清屏:用int10h的6号(或7号)功能调用MOVAH,6MOVBH,04hMOVAL,0MOVCX,0MOVDX,184fhINT10h④相关键的扫描码和字符码EnterKeyEQU1c0dhEscKeyEQU010bhUpCursorEQU4800hLeftCursorEQU4b00hRightCursorEQU4d00hDownCursorEQU5000h5
3、.算法do{定位光标读键if(al==特殊键){if(ah==左光标键)修正列值}elseif(ah==右光标键){修正列值}elseif(ah==上光标键){修正行值}elseif(ah==下光标键){修正行值}}}while(al!=Esc)6.实验步骤运行“光标漫游示例.EXE”了解需求。①编一小程序获得特殊键“→、←、↑、↓”“Esc、回车”等的扫描码和Asc码值,并记录以备后用;②写出光标漫游的算法(保存,用类自然语言描述,用word,与同学、老师讨论算法的可行性与正确性);③在②初步正确的基础上,编写汇编语言源程序;④如发
4、现算法问题,用调试器调试;7.要点 光标如何根据所按的键跟随?折返如何处理?x=(x+1)%25;8.该实验与大实验的关联性 请大家体会主菜单“实验蓝本.exe”的处理过程。附件:实验报告内容①问题②设计要点及算法③源程序④运行结果⑤使用调试器状况和经验总结⑥使用体会和总结实训一光标漫游改进根据跳跃表法(另称跳转表,教材p180)来改进光标漫游程序。键:“→、←、↑、↓”、“Esc”、“Enter”、“ALT_X”(退出循环)。其中对“Esc”、“Enter”键暂不做任何处理。1.掌握跳转表的原理MenuJmpTbldwEnter
5、key,IsEnterKeydwEscKey,IsESCKeydwUpCursor,IsUpCursordwLeftCursor,IsLeftCursordwRightCursor,IsRightCursordwDownCursor,IsDownCursor上述跳转表共6项,每项为:键值(扫描码+字符码)、处理的入口地址2.掌握跳转表的总控程序(入口地址为标号)……ContinueReadKey:……MOVBX,offsetMenuJmpTblMOVCX,6YesNoKeyEqual:cmpax,[bx]jeIsKeyEqualadd
6、bx,4loopYesNoKeyEqualjmpContinueReadKeyIsKeyEqual:movbx,[bx+2]jmpbx……IsEnterKey:…..IsESCKey:…..3.掌握跳转表的总控程序(入口地址为子程序)……ContinueReadKey:……MOVBX,offsetMenuJmpTblMOVCX,6YesNoKeyEqual:cmpax,[bx]jeIsKeyEqualaddbx,4loopYesNoKeyEqualjmpContinueReadKeyIsKeyEqual:movbx,[bx+2]cal
7、l bxjmpContinueReadKey……IsEnterKeyproc……;不能用无条件转移指令等跳出子程序retIsEnterKeyendp…..IsESCKeyproc…..实训二色彩处理及方框显示⒈问题在显示屏显示各种形状的方框(大小不一)。┬──┬ ┌───┐│ │ │ │└──┘ └───┘等实验中可用1,2,3,4,…,9,0等来代替,如:122222223455555556455555556455555556788888889⒉实验基础①注意颜色查看conio.c中的函数:颜色名称值颜色名称值BLACK
8、0DARKGRAY8BLUE1LIGHTBLUE9GREEN2LIGHTGREEN10CYAN3LIGHTCYAN11RED4LIGHTRED12MAGENTA5LIGHTMAGENTA13BROWN6YELLOW14L