鱼C论坛

 找回密码
 立即注册

15岁的小朋友

https://fishc.com.cn/?268867

汇编--课程设计一

已有 721 次阅读2014-5-31 12:16 |个人分类:汇编

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'

        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,8226
        dw 11542,14430,15257,17800
data ends

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


 code  segment
star:
     mov ax,data
     mov ds,ax
     mov ax,table
mov es,ax

mov si,0
mov bx,0
mov di,0
call row_str
        
mov dh,2                                                 
mov dl,5                                                 
mov cl,2                                                 
call show_str1                                            
     
 
mov dh,2                                                
mov dl,15                                               
mov cl,2                                               
                                                            
call show_str2                                         
                                                               

mov dh,2                                                  
mov dl,30                                                 
mov cl,2                                                  
                                                               
call show_str3 
                                                          
                                                               
                                                               
mov dh,2                                                  
mov dl,45                                                 
mov cl,2                                                  
                                                               
call show_str4                                                          
                                                               
                                                               
 mov ax,4c00h                                                  
 int 21h                                                       
                                                               
 row_str: 
        push si
push bx
push di
mov cx,21
s:
       mov ax,ds:[0+di]
       mov es:[0+si],ax
       mov ax,ds:[2+di]
       mov es:[2+si],ax
       mov ax,ds:[84+di]
       mov es:[5+si],ax
       mov ax,ds:[86+di]
       mov es:[7+si],ax
       mov ax,ds:[168+bx]
       mov es:[10+si],ax

  mov ax,es:[5+si]
  mov dx,es:[7+si]
  div word ptr es:[10+si]
  mov es:[13+si],ax

  add di,4
  add bx,2
  add si,16

   loop s

        pop di
pop bx
pop si

    ret



show_str1:                       ;打印第一列
          push ds
 push bx
 push cx
 push si

 mov ax,47104
 mov ds,ax
 mov ax,160
 mul dh
 mov bx,ax
 mov ax,2
 mul dl
 add bx,ax
 add ah,cl

 call show_year

 pop si
 pop cx
 pop bx
 pop ds

    ret


show_year:
         mov bp,0
         push si
         push bx
push di

         mov cx,21

     s1:
        push cx
        mov bp,0
        mov di,0

        mov cx,4



     s2:
        mov al,es:[bp+si]
mov ah,10
        mov ds:[0+di+bx],ax
inc bp
add di,2

                     loop s2





add si,16
        add bx,160

        pop cx
                      loop s1
pop di
        pop bx
        pop si
                  ret



show_str2:                       ;打印第二列
          push ds
 push bx
 push cx
 push si
 push di

 mov ax,47104
 mov ds,ax
 mov ax,160
 mul dh
 mov bx,ax
 mov ax,2
 mul dl
 add bx,ax
 add ah,cl

 call show_summ

 pop di
 pop si
 pop cx
 pop bx
 pop ds

    ret



show_summ:
          mov cx,21



        s3:
  mov bp,0
           push cx
           mov ax,es:[5+si]
           mov dx,es:[7+si]
           push si
           mov cx,10
           push ax

        s4:
           mov cx,10
           mov ax,dx
           mov dx,0
           div cx
           mov si,ax
           pop ax
           div cx
           mov cx,dx
           mov dx,si
           inc bp
           add cx,48
           push cx
           mov cx,ax
           jcxz s5
           push ax
           jmp short s4

        s5:
            mov di,0
            mov cx,bp

        s6:
         pop ax
            mov ah,10
            mov ds:[0+bx+di],ax
            add di,2
         loop s6

            pop si
add si,16
add bx,160
pop cx
       loop s3
    
 ret
show_str3:
          push ds
 push bx
 push cx
 push si
 push di

 mov ax,47104
 mov ds,ax
 mov ax,160
 mul dh
 mov bx,ax
 mov ax,2
 mul dl
 add bx,ax
 add ah,cl

call show_ne 

 pop di
 pop si
 pop cx
 pop bx
 pop ds

    ret
show_ne:
        
mov cx,21
mov si,0
     z:
   mov di,0
   mov bp,0
   push cx
   mov ax,es:[10+si]
z1:
      mov dx,0
mov cx,10
div cx
inc bp
add dx,48
push dx
mov cx,ax
jcxz z2
jmp short z1
      z2:
    mov cx,bp 
 
      z3:
   pop ax
        mov ah,10
        mov ds:[0+bx+di],ax
        add di,2
                   loop z3
  
        add si,16
        add bx,160
pop cx
 
       loop z
   ret
show_str4:
          push ds
 push bx
 push cx
 push si
 push di

 mov ax,47104
 mov ds,ax
 mov ax,160
 mul dh
 mov bx,ax
 mov ax,2
 mul dl
 add bx,ax
 add ah,cl

call show_?? 

 pop di
 pop si
 pop cx
 pop bx
 pop ds

    ret
show_??:
        
mov cx,21
mov si,0
     q:
   mov di,0
   mov bp,0
   push cx
   mov ax,es:[13+si]
q1:
      mov dx,0
mov cx,10
div cx
inc bp
add dx,48
push dx
mov cx,ax
jcxz q2
jmp short q1
      q2:
    mov cx,bp 
 
      q3:
   pop ax
        mov ah,10
        mov ds:[0+bx+di],ax
        add di,2
                   loop q3
  
        add si,16
        add bx,160
pop cx
 
       loop q
   ret
             
 

                           code ends
                                end star
代码没有优化过, 这不是最好的法案!

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 06:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部