. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  课程设计1  [待解决] 回复[ 0次 ]   点击[ 481次 ]  
nanatsunoko
[帖 主]   [ 发表时间:2025-12-25 16:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-17 10:38
data segment
  db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
  db '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
  db '1991', '1992', '1993', '1994', '1995'
    
  dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
  dd 345980, 590827, 803530, 118300, 184300, 2759000, 3753000, 4649000, 5937000
    
  dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442, 2258, 2793, 4037, 5635, 8226
  dw 11542, 14430, 15257, 17800
data ends

stack segment
  db 32 dup (0)
stack ends

assume cs:code,ds:data,ss:stack

code segment

start:          mov ax,data
                mov ds,ax
                mov ax,0b800h
                mov es,ax
                mov ax,stack
                mov ss,ax
                mov sp,32
                mov bx,0
                mov bp,0
                
                mov cx,21
year_outer:     push cx
                xor di,di
                xor si,si
                mov cx,4
year_inner:     mov al,[bx+si]
                mov ah,7
                mov es:[bp+di],ax
                inc si
                add di,2
                loop year_inner         
                add bx,4
                add bp,0a0h
                pop cx
                loop year_outer                  
                
                xor bp,bp
                xor si,si
                mov cx,21                
revenue_dtoc:   push cx
                xor di,di                
                mov ax,[84+si] 
                mov dx,[84+si+2]
                mov cx,10
                call revenue_divw
                add si,4
                pop cx
                loop revenue_dtoc                

                xor bp,bp
                xor si,si
                mov cx,21
employee_dtoc:  push cx
                xor di,di                
                mov ax,[168+si] 
                xor dx,dx
                mov cx,10
                call employee_divw
                add si,2
                pop cx
                loop employee_dtoc 
                
                xor bp,bp
                xor si,si
                xor bx,bx
                mov cx,21
avg_dtoc:       push cx
                xor di,di                
                mov ax,[84+si] 
                mov dx,[84+si+2]
                mov cx,[168+bx]
                push bx
                call avg_divw
                pop bx
                add si,4
                add bx,2
                pop cx
                loop avg_dtoc
                
                mov ah,4ch
                int 21h                
                
avg_divw:       push ax                
                mov ax,dx              
                xor dx,dx             
                div cx                
                mov bx,ax             
                pop ax
                div cx                
                mov cx,dx             
                mov dx,bx             ;收入/雇员数=人均收入(数字形式),商存储在ax和dx中
                
                mov cx,10
avg_s:          push ax                
                mov ax,dx              
                xor dx,dx             
                div cx                
                mov bx,ax             
                pop ax
                div cx                
                mov cx,dx             
                mov dx,bx
                
                inc di               
                add cx,30h
                push cx
                mov cx,ax
                add cx,dx 
                jcxz oka
                mov cx,10
                jmp avg_s                
                
oka:            mov cx,di
                xor di,di
ok_a:           pop es:[bp+di+74]
                mov ah,7
                inc di
                mov byte ptr es:[bp+di+74],ah
                inc di
                loop ok_a
                add bp,0a0h                
                ret                         
                                
                
employee_divw:  push ax                
                mov ax,dx              
                xor dx,dx             
                div cx                
                mov bx,ax             
                pop ax
                div cx                
                mov cx,dx             
                mov dx,bx             ;单次除法溢出运算结束
                
                inc di               
                add cx,30h
                push cx
                mov cx,ax
                add cx,dx 
                jcxz oke
                mov cx,10
                jmp employee_divw                

revenue_divw:   push ax                
                mov ax,dx              
                xor dx,dx             
                div cx                
                mov bx,ax             
                pop ax
                div cx                
                mov cx,dx             
                mov dx,bx             ;单次除法溢出运算结束
                
                inc di               
                add cx,30h
                push cx
                mov cx,ax
                add cx,dx 
                jcxz okr
                mov cx,10
                jmp revenue_divw

okr:            mov cx,di
                xor di,di
ok_s:           pop es:[bp+di+20]
                mov ah,7
                inc di
                mov byte ptr es:[bp+di+20],ah
                inc di
                loop ok_s
                add bp,0a0h                
                ret    

oke:            mov cx,di
                xor di,di
ok_e:           pop es:[bp+di+48]
                mov ah,7
                inc di
                mov byte ptr es:[bp+di+48],ah
                inc di
                loop ok_e
                add bp,0a0h                
                ret                
                
code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2026   ASMEDU.NET  All Rights Reserved