彙編 閏年計算

2021-09-22 11:16:22 字數 3263 閱讀 3976

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...