大学校园新闻稿500字:求高手搞定此除法汇编程序,急~~~~~

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 07:59:52
某公司从2000年到2005年的基本情况如下(以下所有数字都是十进制的):

年份 公司总收入(元) 员工总人数(人) 人均收入(元)
2000 1 1 ?
2001 196620 3 ?
2002 300 3 ?
2003 800 4 ?
2004 500 5 ?
2005 6000 6 ?

编程,在数据段中存储年份,公司总收入,员工总人数的信息。并编程计算人均收入的值(注意2001年的数值在用除法计算时会发生
除法溢出错误)。最后在屏幕上自动按如下所示格式打印出结果(注意每列要左对齐
)。
该表的数据看的不是很清楚,我再补充一下:
公司总收入(元) 分别为1,196620,300,800,500,6000
员工总人数(人) 分别为1,3,3,4,5,6
输出结果应该为:
2000 1............1..1
2001 196620..3..65540
2002 300........3..100
2003 800........4..200
2004 500........5..100
2005 6000......6..1000
我提交的时候百度系统会把连续的空格号省略了,所以只好拿句号代替了,拜托各位了,是用汇编语言编写.

DATA SEGMENT
BEICHU DD 1H,196620H,300H,800H,500H,6000H
CHUSHU DB 1,3,3,4,5,6
AVER DB 50 DUP(?)
TABLE DB '2000 1 1 $'
DB 0AH,0DH,'2001 196620 3 $'
DB 0AH,0DH,'2002 300 3 $'
DB 0AH,0DH,'2003 800 4 $'
DB 0AH,0DH,'2004 500 5 $'
DB 0AH,0DH,'2005 6000 6 $'
DATA ENDS
STACK SEGMENT PARA STACK
DW 30 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV DI,0
MOV BX,0
MOV SI,3
MOV AX,DATA
MOV DS,AX
CHU:CALL FAR PTR CACULATE
INC DI
CMP DI,6
JL CHU
PRINT:MOV DI,OFFSET TABLE
MOV SI,0
MOV CX,6
LOP: PUSH CX
MOV AH,9
MOV DX,DI
INT 21H
ADD DI,25
CMP CX,6
JNE NEXT
SUB DI,2
NEXT:CALL FAR PTR PRINTF
POP CX
LOOP LOP
EXIT:MOV AH,4CH
INT 21H
RET
MAIN ENDP
CACULATE PROC FAR
MOV CX,4
MOV AH,00H
COUNT:MOV AL,BYTE PTR BEICHU[SI]
AND AL,0F0H
ROL AL,1
ROL AL,1
ROL AL,1
ROL AL,1
AAD
DIV CHUSHU[DI]
MOV AVER[BX],AL
INC BX
MOV AL,BYTE PTR BEICHU[SI]
AND AL,0FH
AAD
DIV CHUSHU[DI]
MOV AVER[BX],AL
DEC SI
INC BX
LOOP COUNT
ADD SI,8
RET
CACULATE ENDP
PRINTF PROC FAR
MOV CX,8
L2:MOV DL,AVER[SI]
INC SI
DEC CX
CMP DL,0
JE L2
INC CX
JMP L3
L1:MOV DL,AVER[SI]
INC SI
L3:ADD DL,'0'
MOV AH,2
INT 21H
LOOP L1
RET
PRINTF ENDP
CODE ENDS
END START