zoukankan      html  css  js  c++  java
  • 汇编实验:移动db dd dw 数据,求平均值操作。

    题目是王爽的《汇编语言》实验7 P172

    题目

    弄了一上午才搞定。嗨!学太快的结果,基础不行。

    要注意的问题是共有21列数据,那就是15h,注意不要在代码中写成21h,不然恶梦从此开始。

    代码:

    assume cs:codesg, 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,195514
    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,11430,15257,17800
    data ends

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


    codesg segment

    start:mov ax,data
    mov ds,ax
    mov ax,table
    mov es,ax

    mov bx,0h
    mov si,0h

    mov cx,15h
    s: mov ax,[si]
    mov es:[bx],ax
    mov ax,[si+2h]
    mov es:[bx+2h],ax
    ;移动年份
    mov ax,[si+54h]
    mov es:[bx+5h],ax
    mov dx,[si+56h]
    mov es:[bx+7h],dx
    ;移动收入
    mov ax,[di+0a8h]
    mov es:[bx+0ah],ax
    ;移动雇员数
    mov ax,es:[bx+5h] ;除数是dword型,32位,所以在做除法之前,用ax存储低16位
    mov dx,es:[bx+7h] ;用dx存储高16位
    div word ptr es:[bx+0ah]
    mov es:[bx+0dh],ax
    ;计算平均值并移动

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

    mov ax,4c00h
    int 21h

    codesg ends
    end start

    结果如下(红框内为平均值):



  • 相关阅读:
    【HDU 2874】Connections between cities(LCA)
    【Gym 100947C】Rotate It !!
    【CodeForces 615E】Hexagons
    Course Selection CodeChef
    UVA 10779 Collectors Problem[最大流]
    1855: [Scoi2010]股票交易[单调队列优化DP]
    1854: [Scoi2010]游戏[并查集]
    1853: [Scoi2010]幸运数字[容斥原理]
    poj3233 Matrix Power Series
    3969 [Mz]平方和【斐波那契平方和】
  • 原文地址:https://www.cnblogs.com/myfjd/p/2296028.html
Copyright © 2011-2022 走看看