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

1. 题目

1

2

2. 实现代码

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'

        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

code segment

start:
        mov ax, data
        mov ds, ax

        mov ax, table
        mov es, ax

        sub si, si
        sub di, di
        sub bx, bx
        mov cx, 21
s0:
        ;year
        mov ax, [bx+0]
        mov es:[di], ax

        mov ax, [bx+2]
        mov es:[di+2], ax
        mov byte ptr es:[di+4], 20h ;blank string ' '

        ;income
        mov ax, [bx+84]
        mov es:[di+5], ax

        mov ax, [bx+86]
        mov es:[di+7], ax

        mov byte ptr es:[di+9], 20h ;blank string ' '

        ;empoyee count
        mov ax, [si+168]
        mov es:[di+10], ax
        mov byte ptr es:[di+12], 20h ;blank ' '

        ;avg income
        mov ax, es:[di+5]
        mov dx, es:[di+7]
        div word ptr es:[di+10]
        mov es:[di+13], ax
        mov byte ptr es:[di+15], 20h ;blank ' '

        add di, 10h
        add bx, 4
        add si, 2
        loop s0

        mov ax, 4c00h
        int 21h

code ends
end start

3. 运行前后对比

  • 初始化ES指针


    1) 初始化ES指针
  • ES处数据


    2) ES处数据
  • DS处数据


    3) DS处数据
  • 运行后验证数据


    4) 运行后验证数据

4. 思路详解

  1. 空格字符串的ASCII值是: 32(20h)
  2. ds 指向Data段, es 指向table段
  3. di 用来指向table不同的行, 下一行时增加16
  4. bx, si 用来取ds中的数据:
  • 4个字节用bx, 如年份, 收入
  • 2个字节用si, 如雇员数, 人均收入
  1. 求平均收入时:
        mov ax, es:[di+5]
        mov dx, es:[di+7]
        div word ptr es:[di+10]
        mov es:[di+13], ax

因为除数(雇员数)是16位, 所以被除数为32位,被除数在DX和AX中存放,DX存高16位, AX存低16位

你可能感兴趣的:(汇编: 实验7寻址方式在结构化数据访问中的应用)