文档详情

实验五、输入输出及中断功能和子程序调用案例.docx

发布:2017-06-14约5.57千字共15页下载文档
文本预览下载声明
SHANGHAI UNIVERSITY《IBM汇编语言程序设计》实验报告学 院计算机工程与科学学院学号姓名指导老师江苏苏日期2016.10实验五、输入输出及中断功能和子程序调用目的: 1. 全面掌握输入和输出的中断功能调用(键盘和显示器) 2. 掌握子程序的定义和调用 3. 学会编制良好风格的汇编语言程序要求: 1)在实验四的基础上,在屏幕上开设二个窗口(如左右或上下)2)定义输入缓冲区(最多输入50个字符)3)在第一个窗口输入(要求有输入提示)4)后台程序完成实验四的工作5)结果显示在第二个窗口(要求有输出提示)6)所有程序必须以子程序方式体现(除了初始化和程序结尾)7)必须在程序中做好子程序的功能说明以及参数说明8)注意调试结果,并做好记录代码:DATAS SEGMENT maxlen db 50 count db ? ;计数器 res db 51 dup(?) letter db 50 dup(?) digit db 50 dup(?) num_letter db 0 num_digit db 0 string1 db The num of letter is $ string2 db Ths num of digit is $ string3 db : $ string4 db Please input a string and end with Enter $ string8 db After sorted the string is : $ string5 db Please input a letter to find how many times it shows: $ string6 db shows $ string7 db times.$ copy_res db 51 dup(?) const_1 db 2 const_2 db ? find_target db 2 dup(?) find_result db 0H ;查找结果 input_cursor_row db ?input_cursor_column db ?output_cursor_row db ?output_cursor_column db ?DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码main:call INITcall INPUT call CLASSIFY call COPYSTRING call BUBBLESORT call FIND mov ah,1 int 21hjmp mainmov ah,4chint 21hINPUT proc near ;input a string and save it in res,the num of letter in countlea dx,string4mov ah,9Hint 21Hcall IN_ENDL lea dx,maxlen mov ah,0AH int 21H call IN_ENDL retINPUT endpCLASSIFY proc near ;将储存在res中的字符串分类统计(res首地址为0002H)init: lea bx,res sub bx,2H lea si,letter lea di,digitcompare1: cmp res[bx],a jb compare2 cmp res[bx],z ja compare3 inc num_letter mov dl,res[bx] mov [si],dlinc si jmp move_to_nextcompare2: cmp res[bx],Z ja move_to_next cmp res[bx],A jb compare3 mov al,num_letter inc al mov num_letter,al mov dl,res[bx] mov [si],dl inc si jmp move_to_nextcompare
显示全部
相似文档