您好,欢迎访问三七文档
数学与软件科学学院实验报告学期:2017至2018第2学期2018年4月4日课程名称:汇编语言专业:信息与计算科学班级:2015级_5班实验编号:6实验项目:编程实现大小写字母间的转换指导教师:冉茂华姓名:黄玉含学号:2015060512实验成绩:Poweridea公司从1975年成立一直到1995年的基本情况如下。年份收入(千美元)雇员(人)人均收入(千美元)1975163?1976227?19773829?1978135613?1979239028?1980800038?┆┆┆┆1995593700017800?下面的程序中,已经定义好了这些数据:datasegmentdb'1975','1976','1977','1978','1979','1980','1981','1982','1983'db'1984','1985','1986','1987','1988','1989','1990','1991','1992'db'1993','1994','1995';以上是表示21年的21个字符串dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;以上是表示21年公司总收入的21个dword型数据dw3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw11542,14430,15257,17800;以上是表示21年公司雇员人数的21个word型数据dataendstablesegmentdb21dup('yearsummne??')tableends注:上述程序代码被收集在附件attachment.txt文件中。实验任务:编程,将data段中的数据按照如下格式写入到table段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table段中。提示:可将data段中的数据看成多个数组,而将table中的数据看成是一个结构型数据的数组,每个结构型数据中包含多个数据项。可用BX定位每个结构型数据,用idata定位数据项,用SI定位数组项中的每个元素。对于table中的数据的访问可采用[BX+idata+SI]的寻址方式。注意:该程序是目前为止最复杂的程序,它几乎用到了前面学过的所有知识和编程技巧。所以,该程序是对前面知识的最好的实践总结,请重视。代码如下:assumecs:code,ds:datadatasegmentdb'1975','1976','1977','1978','1979','1980','1981','1982','1983'db'1984','1985','1986','1987','1988','1989','1990','1991','1992'db'1993','1994','1995'dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000dw3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw11542,14430,15257,17800movax,4c00hint21hdataendstablesegmentdb21dup('yearsummne??')tableendscodesegmentstart:movax,datamovds,axmovax,tablemoves,axmovbx,0movcx,21movbp,0s:movdx,cxmovcx,2movsi,0movdi,0s0:movax,[bx+0+si]moves:[bp+di],axaddsi,2adddi,2loops0incdimovsi,0movcx,2s1:movax,[bx+84+si]moves:[bp+di],axaddsi,2adddi,2loops1addbx,4addbp,16movcx,dxloopsmovcx,16movbp,0movbx,0s3:movax,[bx+168]moves:[bp+10],axmovdx,es:[bp+7]movax,es:[bP+5]movdi,es:[bp+10]divdimoves:[bp+13],axaddbx,2addbp,16loops3movax,4c00hint21hcodeendsendstart结果分析:○1采用结构体的思想,这里将结构体转化为相对基址变址寻址[bx+idata+si].Bx代表变量名,指明了结构体变量名称。Idata表示数据项地址。Si表示idata中的每一个字符。○2div是除法指令:除数:有8位,16位两种,在一个reg或内存单元中。被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数为32位,在DX和AX中存放,DX高16位,AX存低16位。结果:如果除数为8位,则AL存储除法操作的商,AH存放除法操作的余数;如果除数为16位,则AX存除法操作的商,DX存除法操作的余数。○3表示内存单元:用寄存器间接表示。用byte/wordptr直接表示。
本文标题:实验6汇编实验
链接地址:https://www.777doc.com/doc-4863611 .html