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

Posted 树的种子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编试验七:寻址方式在结构化数据访问中的应用相关的知识,希望对你有一定的参考价值。

预备知识:

(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个字节,分开了,在数据段中就有体现;

 

 

以上是关于汇编试验七:寻址方式在结构化数据访问中的应用的主要内容,如果未能解决你的问题,请参考以下文章

50行代码实现《汇编语言》王爽 实验七

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

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

汇编语言中操作数寻址方式都有哪些,各自有啥特点,怎么区分呢?

汇编学习笔记-80x86寻址方式

[汇编语言]实验:应用更灵活的寻址方式来定位内存地址