//目录

汇编试验七:寻址方式在结构化数据访问中的应用

预备知识:

(1)寻址方式 《汇编语言》P169

(2)div指令

被除数 dx + ax,除数 bx ,商 ax,dx 余数;

(3)dd :双字数据

 (4)dup :重复赋值指令

 

 

实验任务:结构化存储

Source Code:

assume cs:codesg, ds:data, es:table, ss:stack

data segment
    ;21 year
    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
    dw 8226,11542,14430,15257,17800
data ends

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

stack segment
    db 16 dup(0)
stack ends

codesg segment

start:
    mov ax,data ;数据源
    mov ds,ax
    mov bx,0
    mov si,84
    mov di,168

    mov ax,table ;目标地址
    mov es,ax
    mov bp,0

    mov ax,stack    ;栈段
    mov ss,ax
    mov sp,16

    mov cx,21
    s:
        mov ax,[bx+0]
        mov es:[bp+0],ax
        mov ax,[bx+2]
        mov es:[bp+2],ax        ;年份
        mov byte ptr es:[bp+4],20h

        mov ax,[si]
        mov es:[bp+5],ax
        mov ax,[si+2]
        mov es:[bp+7],ax        ;收入
        mov byte ptr es:[bp+9],20h

        mov ax,[di]
        mov es:[bp+10],ax
        mov byte ptr es:[bp+12],20h ;员工人数

        mov ax,[si]
        mov dx,[si+2]
        div word ptr [di]
        mov es:[bp+13],ax
        mov byte ptr es:[bp+15],20h

        add bx,4
        add si,4
        add di,2
        add bp,16

        loop s
    mov ax,4c00H
    int 21H

codesg ends
end start
View Code

原始数据:

 

运行结果:

但是你会发现,收入,人数,人均收入都显示不了,是因为,收入是4个字节,分开了,在数据段中就有体现;

 

 

posted @ 2017-05-31 21:05  小草的大树梦  阅读(735)  评论(0编辑  收藏  举报