荣誉值:0
信誉值:0
注册日期:2024-05-05 10:34 |
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,0
mov si,0
mov di,0
mov cx,21
s: mov dx,cx
mov cx,4
s0: mov al,[di]
mov es:[bx][si],al
inc si
inc di
loop s0
mov si,0
add bx,10h
mov cx,dx
loop s
mov bx,0
mov cx,21
s1: mov dx,cx
mov cx,2
s2: mov ax,[di]
mov es:[bx].5[si],ax
add si,2
add di,2
loop s2
mov si,0
add bx,10h
mov cx,dx
loop s1
mov bx,0
mov cx,21
s3: mov ax,[di]
mov es:[bx].0ah[si],ax
add di,2
add bx,10h
loop s3
mov bx,0
mov cx,21
s4: mov ax,es:[bx].5[si]
add si,2
mov dx,es:[bx].5[si]
mov si,0
div word ptr es:[bx].0ah[si]
mov es:[bx].0dh[si],ax
add bx,10h
loop s4
mov dh,3
mov dl,5
mov cl,2
call show_str
mov bx,0
mov ax,table
mov byte ptr es:[si],0
inc si
call ddtoc
mov dh,23
mov dl,20
mov cl,2
sub si,2
mov di,si
call show_str1
mov bx,0
mov di,0ah
mov si,160h
mov byte ptr es:[si],0
inc si
call dwtoc
mov dh,23 ;起始行数
mov dl,40 ;起始列数
mov cl,2
sub si,2
mov di,si
call show_str1
mov bx,0
mov di,0dh
mov si,160h
mov byte ptr es:[si],0
inc si
call dwtoc
mov dh,23
mov dl,60
mov cl,2
sub si,2
mov di,si
call show_str1
mov ax,4c00h
int 21h
ddtoc:
mov cx,21
s7: push bx
mov ax,es:[bx+5]
add bx,2
mov dx,es:[bx+5]
push cx
mov cx,10
mov di,10
s8: push cx
mov bp,0
push ax
mov ax,dx
mov dx,0
mov cx,ax
jcxz ok
div di
mov bp, ax
ok: pop ax
div di
mov bl,dl
mov dx,bp
add bl,30h
mov es:[si],bl
inc si
mov cx,ax
jcxz ok1
pop cx
loop s8
ok1: mov byte ptr es:[si],0
inc si
pop cx
pop cx
pop bx
add bx,10h
loop s7
ret
dwtoc:
mov cx,21
s9: push bx
push cx
mov ax,es:[bx+di]
mov cx,10
s10: push cx
mov dl,10
mov bl,al
mov al,ah
mov ah,0
mov cx,ax
jcxz ok3
div dl
ok3: mov bh,al
mov al,bl
div dl
mov bl,al
mov dh,ah
mov ax,bx
mov cx,ax
add dh,30h
mov es:[si],dh
inc si
jcxz ok4
pop cx
loop s10
ok4: mov byte ptr es:[si],0
inc si
pop cx
pop cx
pop bx
add bx,10h
loop s9
ret
show_str: mov al,160
mul dh
mov si,ax
mov al,cl
mul dl
add ax,si
mov si,ax
mov ax,0b800h
mov ds,ax
mov bx,0
mov di,0
mov cx,21
s5: mov bp,cx
mov cx,4
s6: mov al,es:[bx+di]
mov ah,0ah
mov ds:[si],ax
add si,2
inc di
loop s6
add si,152
mov di,0
add bx,10h
mov cx,bp
loop s5
ret
show_str1:mov al,160
mul dh
mov si,ax
mov al,cl
mul dl
add si,ax
mov ax,0b800h
mov ds,ax
mov cx,21
w0: mov bp,cx
push si
mov cx,10
w1: mov bx,cx
mov al,es:[di]
mov ah,0ah
mov ds:[si],ax
add si,2
dec di
mov al,es:[di]
mov ah,0
mov cx,ax
jcxz ok2
mov cx,bx
loop w1
ok2: dec di
pop si
sub si,160
mov cx,bp
loop w0
ret
codesg ends
end start | | |