汇编语言程序设计-课程设计资料

2019-01-19 12:02

一、 实验目的

1.熟练掌握call、ret的原理及应用

2.熟练掌握子程序的框架、进行模块化程序设计

3.掌握参数与结果的传递、批量数据传递等问题的解决方法

二、 实验内容及要求

(一)综合程序设计:利用实验10中的三个子程序,将power idea公司的数据按照下图所示的格式在屏幕上显示出来,要求计算人均收入并显示出来。

power idea公司的数据如下:

assume cs:codesg data segment

db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;年份

dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd

345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;公司总收入 dw

3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 ;公司雇员人数 data ends

table segment

db 21 dup('year summ ne ??')

table ends

要求:

(1)给出该设计过程或算法

(2)在代码中必要的地方给出相应注释 (3)最终显示结果。

三、实验解答过程及结果

(1)该题目的第一段db型年份数据是以字符串储存的,不适合后续的操作,所以先用ice子程序把年份数据转化为word型数据。接下来循环开始,先调用dtoc1子程序,把第一年(1975)的word型年份数据转化为字符串储存在es中,再调用show_str函数在屏幕缓冲区显示出来。接着调用dtoc2子程序和show_str子程序把第一年的收入在同一行显示出来。再接着调用dtoc1子程序和show_str子程序把第一年的雇员数在同一行显示出来,最后计算平均收入,同样调用两个子程序显示出来。不停地循环,循环21次,把所有的数据都显示出来,输入程序结果,程序完结。 (2)代码及数据如下: assume cs:codesg data segment

db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;年份

dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ;公司总收入

dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 ;公司雇员人数 data ends

table segment

db 21 dup('year summ ne ?? ') table ends

stack segment db 1024 dup(0) stack ends

codesg segment start:mov ax,data mov ds,ax mov ax,table mov es,ax mov ax,stack mov ss,ax mov sp,1024 mov si,0 mov bx,0 mov dh,5

mov ax,1975

mov cx,21

so:call ice

;初始化,dh为输出时的行数 push ax mov ax,ds:[si] call dtoc1 pop ax push cx mov dl,1

mov cl,00000111b call show_str

pop cx push ax push dx

mov ax,ds:[si+84] mov dx,ds:[si+86] call dtoc2 pop dx pop ax push cx mov dl,8 mov cl,00000111b call show_str

pop cx ;这两段输出年份 ;这两段输出收入

push ax

mov ax,ds:[bx+168] call dtoc1 pop ax

push cx mov dl,18 mov cl,00000111b call show_str

pop cx ;这两段输出雇员数 push ax push dx mov ax,[si+84] mov dx,[si+86]

div word ptr ds:[bx+168]

;计算人均收入,结果为16位,保存在ax中 call dtoc1 pop dx pop ax push cx mov dl,26


汇编语言程序设计-课程设计资料.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电气配管作业指导书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: