xiagm 发表于 2022-2-18 14:18:40

写实验7的经历,欢迎大家指正,共同学习

经过三天的时间写了代码,今天经过思考和学习鱼的视频重新调整。

第一次写的程序:

assume cs:code,ds:data,es:table,ss:stack
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

stack segment
   dw 8 dup(0)
stack ends

code segment
start:mov ax,data
      mov ds,ax
          mov ax,table
          mov es,ax
          mov ax,stack
          mov ss,ax
          mov ax,0
          mov sp,16
          mov bx,0
          mov cx,21
              
s0: push cx
    mov cx,2
    mov si,0
s1: mov ax,
    mov es:,ax
        add si,2
        loop s1
       
        pop cx
        add bx,16
        loop s0
       
        mov bx,84
        mov cx,21
s2: push cx
    mov cx,2
        mov si,6
       
s3: mov ax,
    mov es:,ax
        add si,2
        loop s3
       
        pop cx
        add bx,16
        loop s2
       
        mov bx,212
        mov cx,21
       
s4: mov ax,
    mov es:,ax
        add bx,16
        loop s4
       
    movbx,0
        mov si,0
        mov cx,21
       
s5: mov ax,
    mov dx,
        div word ptr
        mov es:,ax
        add bx,4
        add si,2
        loop s5
       
        mov ax,4c00h
        int 21h
       
code ends

end start


第二次写的程序

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'
       ;以上是表示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

code segment
start:mov ax,data
      mov ds,ax
          mov ax,table
          mov es,ax                        
          mov bx,0    ; 行数变量
          mov si,0    ;员工人数变量
          mov di,0   ; 年份和总收入变量
          mov cx,21;循环次数
              
s0: mov ax,
    mov es:,ax
        mov ax,
        mov es:,ax      ;年份存入
       
        mov ax,
    mov es:,ax
        mov ax,
    mov es:,ax      ;总收入存入
       
    mov ax,
        mov es:,ax   ;员工人数存入
       
        mov ax,es:
        mov dx,es:
        div word ptr es:   ;计算人均收入
       
        mov es:,ax      ;人均收入存入
       
        add bx,16          ;换行
        add si,2         ;员工变化
        add di,4         ;总收入和年份变化
        loop s0
       
        mov ax,4c00h
        int 21h
       
code ends

end start

snrjtg1 发表于 2022-3-1 23:58:45

第二个程序好呀,比我想的强多了
页: [1]
查看完整版本: 写实验7的经历,欢迎大家指正,共同学习