1 data segment ;定義資料段
2 infon db 0dh,0ah,'
please input a year: $
'3 y db 0dh,0ah,'
this is a leap year! $
'4 n db 0dh,0ah,'
this is not a leap year! $
'5 w dw 0
6 buf db 8
7 db '
'8 db 8 dup('')
9data ends
1011
stack segment stack
12 db 200 dup(0)13
stack ends
1415
code segment
16 assume ds:data,ss:stack,cs:
code
17start:
movax,data
18mov
ds,ax
19mov
w,0h
2021
lea dx,infon ;
在螢幕上顯示提示資訊
22mov ah,9
;21號ah放09h,dx為串位址,字串以'$'結束
23int
21h24
25lea dx,buf ;
從鍵盤輸入年份字串
26mov ah,0ah ;
從鍵盤存在緩衝區,dx=緩衝區首址,dx為緩衝區最大大小,dx+1實際輸入字串數
27int
21h
2829
mov ch, 0h ;
將實際輸入長度放進cl中
30mov cl, [buf+1]31
lea di,buf+2
;將字串首址放在di中
32call
datacate
33call
ifyears
34jc a1 ;
進製為1則轉移=jb,即閏年轉移
3536
lea dx,n ;
顯示不是閏年
37mov ah,9
38int
21h39
jmpstart
40a1:
lea dx,y ;
顯示是閏年
41mov ah,9
42int
21h
43jmp
start
4445
exit:
movah,4ch
46int
21h47
484950;
之前要準備好:將輸入結果放進w中
51datacate proc near;
52push cx;
53dec
cx54
lea si,buf+2
55tt1:
inc si ;
loop的停止條件cx=0,cx自減
56 loop tt1 ;
把字串指標移到字串最後
57pop
cx58
5960
movdh,30h
61mov
bl,0ah
62mov ax,1
;乘的時候要用
63l1:
push
ax64
sub byte ptr [si],dh ;
sub dst,src減去'0',強制型別轉換
65mul byte ptr [si] ;
mul src:位元組操作:(ax)
66add w,ax ;
將這一位取出的數字所對應的整數加到w中
67pop
ax68
mul bl ;
ax原來為1以後每次乘10
69dec
si70
loop l1
71ret
72datacate endp
7374
;計算是否為閏年,w儲存年的數值,結果通過改變進製標誌位來返回cf
75ifyears proc near
76push bx ;
保護77
push
cx78
push
dx79
mov ax,w ;
將上面轉換的整數值給ax
80mov cx,ax ;
讓cx=ax=w,cx儲存資料
81mov dx,0
;dx清0
82mov bx,4
;bx=4
83div bx ;
div src 字:(al)=(ax)/(src)商 位元組(ax)=(dx,ax)/(src)
84cmp dx,0
;是否可以整出4
85jnz
lab1
86mov ax,cx ;
是否可以整除100
87mov bx,100
88div
bx89
cmp dx,0
90jnz
lab2
91mov ax,cx ;
可以整除400
92mov bx,400
93div
bx94
cmp dx,0
95jz
lab2
96lab1:
clc;
不是閏年[clc 將進製位cf清零,即cf=0.]
97jmp lab3 ;
[stc(進製位置為1指令)]
98lab2:
stc;
不能整除100,但能整除4 + 可以整除400
99lab3:
popdx
100pop
cx101
popbx
102ret
103ifyears endp
104code ends
105 end start
php判斷閏年的三種方法 閏年計算方法
1,php閏年計算方法一 普通年能被4整除而不能被100整除的為閏年。如2004年就是閏年,1900年不是閏年 世紀年能被400整除而不能被3200整除的為閏年。如2000年是閏年,3200年不是閏年 year mt rand 1900,2200 從1900年到2200,可以自己改,也可以給乙個定值...
php判斷閏年的三種方法 閏年計算方法
1,php閏年計算方法一 普通年能被4整除而不能被100整除的為閏年。如2004年就是閏年,1900年不是閏年 世紀年能被400整除而不能被3200整除的為閏年。如2000年是閏年,3200年不是閏年 year mt rand 1900,2200 從1900年到2200,可以自己改,也可以給乙個定值...
用Python寫乙個閏年計算器
閏年的規則是,能夠被4整除,並且在為百年 例如1900年 的時候可以為400整除,就是閏年!基礎 是這樣的 year string input 請輸入要計算的年份 year int int year string if year int 4 0 if year int 100 0 if year i...