用80x86汇编语言,编写一个判断闰年的程序
来源:互联网 发布:知乎 神人 常凯申 编辑:程序博客网 时间:2024/06/05 04:26
要求:有程序的分析;只能输入数字,输入其它有错误提示。
;==============================================
;程序如下:
;==============================================
DATA SEGMENT ;数据段.
MSG1 DB 13, 10, 'Please Input : $'
VAR1 DB 13, 10, 'THE YEAR IS LEAP!','$'
VAR2 DB 13, 10, 'THE YEAR IS NOT LEAP!','$'
MSG3 DB 13, 10, 'Input ERROR. $'
x DW ? ;年份:0~65535
B DW 4
G DW 400
F DW 100
DATA ENDS
;----------------------------------------------
CODE SEGMENT ;代码段.
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
MOV DX, OFFSET MSG1 ;提示 Please Input :
MOV AH, 9
INT 21H
;--------------------------------
IN_LOOP:
MOV x, 0 ;数据清零.
MOV CX, 4 ;输入4位
_INX:
PUSH CX
MOV AH, 1 ;输入单个字符.
INT 21H
;--------------------------------
CMP AL, '0'
JB _IN_ERR ;小于'0',不是数字.
CMP AL, 3AH
JB SUB_30H ;'0'~'9'.
;--------------------------------
_IN_ERR: ;大于'9',也不是数字.
MOV DX, OFFSET MSG3 ;提示 Input ERROR.
MOV AH, 9
INT 21H
JMP EXIT ;转到结束程序.
;--------------------------------
SUB_30H:
SUB AL, '0' ;还原为数字.
MOV AH, 0
MOV CX, AX ;暂存新数据.
MOV AX, x
MOV BX, 10 ;老数据乘以10
MUL BX
ADD AX, CX ;加上新数据.
MOV x, AX ;保存.
POP CX
LOOP _INX ;继续输入.
;--------------------------------
MOV AX, x ;取来刚刚输入的年份
CWD ;拓展为32位
DIV B ;除以4
CMP DX, 0 ;余数为0?
JNZ L1 ;非0,就不是闰年
;--------------------
MOV AX, x
CWD
DIV G ;除以400
CMP DX, 0
JZ L2 ;余数为0,就是闰年
;--------------------
MOV AX, x
CWD
DIV F ;除以100
CMP DX, 0
JNZ L2 ;余数非0,就是闰年
;--------------------
L1:
MOV DX, OFFSET VAR2 ;显示:THE YEAR IS NOT LEAP!
JMP _O_STR
L2:
MOV DX, OFFSET VAR1 ;显示:THE YEAR IS LEAP!
_O_STR:
MOV AH, 09H ;显示
INT 21H
;--------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;--------------------------------
CODE ENDS
END START
;==============================================
原题网址:http://zhidao.baidu.com/question/340373455.html
后记:
这程序是正确的。并且在几个答案中,是唯一符合题目要求的,实验一下即可得出结论。
但是,提问者得到了正确答案后,却采用了投票方式来决定最优,真不地道。
;==============================================
- 用80x86汇编语言,编写一个判断闰年的程序
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 一个80x86汇编语言程序的查错
- 80x86汇编语言程序:判断奇、偶数的个数
- 用c++编写闰年的判断基础程序
- c语言:使用for循环编写一个判断闰年的程序
- 编写一个Java程序,用if-else语句判断某年份是否为闰年。
- java编程实战之闰年的判断程序编写
- 80x86汇编语言编程:相邻两字符的判断
- 汇编语言《闰年程序》
- 闰年判断 写一个程序,能够判断从键盘上输入的年份是否是一个闰年
- 转: 闰年判断 写一个程序,能够判断从键盘上输入的年份是否是一个闰年
- 80x86 汇编语言编程:用 “*” 显示一个三角形
- 用80x86汇编语言:在字符串中删除一个字符
- Javascript编写判断是否闰年的例子
- C语言编写,判断闰年的方法!
- 编写函数判断一个年是否是闰年,是闰年返回ture,不是闰年返回false。
- 80x86汇编语言程序错误分析
- 跨境和农村电商成热点
- 串口通信的优化
- 基于 8086 汇编语言——减奇数法开平方
- 基于51单片机的00-99秒表--C语言
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 用80x86汇编语言,编写一个判断闰年的程序
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 用80x86汇编语言编程--在10个无符号数中,找最小的偶数
- C语言编程:字符串连接
- iOS-最新iOS 9 适配中出现的坑
- 使用ViewFlipper实现页面自动切换
- C语言编程:有n个人围成一圈,顺序排号。从第一个人开始报数...
- I/O接口高低位互换
- C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置