zkkpkk 发表于 2008-1-16 13:44:26

王版《汇编语言》第8章小结习题解答

彻底摘掉汇编会看不会写的帽子
用寄存器bx定行的偏移地址,用si和di定数据段的偏移地址,用、、寻址

;题目要求:power idea公司1975年成立一直到1995年基本情况如下data段所示
;要求按年份、收入、雇员、人均收入的格式写入table段内存,计算人均收入(收入/雇员数)
;作者zkkpkk
assume cs:code,ds:data,es:table
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'
;以上21个串表示年份
dd 16,32,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上21个双字表示收入
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上21个字表示员工人数
data ends
table segment
db 21 dup ('year summ ne ?? ')
;以上为21行16个字符的表
table ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,table
mov es,ax

mov bx,0
mov di,0
mov si,0
mov cx,21
s:
;写入年份
mov ax,ds:
mov es:,ax
mov ax,
mov es:.00h,ax
mov byte ptr es:.04h,20h
;写入年收入
mov ax,ds:
mov es:.05h,ax
mov ax,ds:
mov es:.05h,ax
mov byte ptr es:.09h,20h
;写入员工人数
mov ax,ds:
mov es:.0ah,ax
mov byte ptr es:.0ch,20h
;计算并写入年平均工资
mov ax,es:.05h
mov dx,es:.05h
div word ptr es:.0ah
mov es:.0dh,ax

add bx,16
add di,2
add si,4
loop s

mov ax,4c00h
int 21h
code ends
end start

[ 本帖最后由 zkkpkk 于 2008-1-16 13:47 编辑 ]

我是哇哈哈 发表于 2008-1-16 16:01:31

:sad1 什么来的!!!

jy2848633 发表于 2008-4-13 11:50:15

哎,可惜没学过```

火花 发表于 2008-4-19 12:57:32

我Cao
周XX老是在害人

跟大家说吧
为什么要有高级语言
是因为高级语言更容易做项目
能做项目
就是有饭吃
吃饭才是硬道理
页: [1]
查看完整版本: 王版《汇编语言》第8章小结习题解答