汇编试验七:寻址方式在结构化数据访问中的应用
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
原始数据:
运行结果:
但是你会发现,收入,人数,人均收入都显示不了,是因为,收入是4个字节,分开了,在数据段中就有体现;
以上是关于汇编试验七:寻址方式在结构化数据访问中的应用的主要内容,如果未能解决你的问题,请参考以下文章