注册 登录
编程论坛 汇编论坛

王爽试验 7---寻址方式在结构化数据结构访问中的应用

Explorerlxz 发布于 2014-06-05 22:15, 889 次点击
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录

程序代码:
assume cs:codesg
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年21个字符串

    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
    ;以上是表示21年公司总收入的21个dword型数据

    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
    dw 11542,14430,15257,17800
    ;以上是表示21年公司雇员人数的21个word型数据
data ends

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

codesg segment
start:    mov ax,data
    mov ds,ax
    mov si,0

    mov ax,table
    mov es,ax
    mov di,0

    mov bx,0a8h

    mov cx,21

s:    mov ax,[si]    ;year
    mov es:[di],ax
    mov ax,[si+2]
    mov es:[di+2],ax

    mov ax,[si+54h]    ;income
    mov es:[di+5],ax
    mov dx,[si+56h]
    mov es:[di+7],dx

    div word ptr [bx]    ;average income
    mov es:[di+0dh],ax

    mov ax,[bx]    ;number of employers
    mov es:[di+0ah],ax

    add bx,2
    add si,4
    add di,10h
    loop s
   
    mov ax,0c00h
    int 21h
codesg ends
end start
1 回复
#2
Explorerlxz2014-06-05 22:18
前几天就看到CSDN上的这个提问帖http://bbs.
今天不仅改善了自己之前写的烂码,有帮助别人解决了一道问题
感觉汇编语言技巧也是很多的,寄存器的使用让人有点揪心,但是真心感觉对事物的理解更进一步了!
1