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