程序需求:能被4整除但不能被100整除,或者年被400整除的年份是闰年。编程写一个完整的程序,求出2012年~2099年中的所有闰年年份,把它们存放在数组Lyear中并输出到屏幕上。
编程思路:汇编中ESI用来做年份计数器,ECX用来做闰年个数计数器,用DIV指令来求余数。

开发环境

Win10 + VS2017

C语言代码实现如下:

#include <stdio.h>
int main()
{printf("Leap year is follow:\n");for (int i = 2012; i < 2100; i++){if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))printf("%d\t",i);}return 0;
}

汇编语言代码实现如下:

INCLUDELIB kernel32.lib
INCLUDELIB ucrt.lib
INCLUDELIB legacy_stdio_definitions.lib.386
.model flat,stdcallExitProcess PROTO,
dwExitCode:DWORDprintf    PROTO C : dword,:vararg
scanf    PROTO C : dword,:vararg.data
Lyear dword 25 dup(0)
msg byte 'Leap year is follow:',10,0
format byte '%d',9,0.code
main Procxor ecx,ecxmov esi,2012jmp testing
body:mov eax,esimov ebx,4cdqdiv ebxcmp edx,0jne nextmov eax,esimov ebx,100cdqdiv ebxcmp edx,0je nextmov dword ptr Lyear[ecx*4],esiinc ecxjmp over
next:mov eax,esimov ebx,400cdqdiv ebxcmp edx,0jne overmov dword ptr Lyear[ecx*4],esiinc ecx
over:inc esi
testing:cmp esi,2100jl bodypushadinvoke printf,offset msgpopadxor esi,esi
again:pushadinvoke printf,offset format,dword ptr Lyear[esi*4]popadinc esiloop againpush 0hcall ExitProcess
main endp
end main

编译运行后结果如下:

【汇编程序】实现输出2012-2100年之间所有闰年相关推荐

  1. 输出1000~2000年之间的闰年

    闰年分为普通闰年和世纪闰年 普通闰年: 年份是4的倍数的, 且不是100的倍数, 为普通闰年(被4整除但不能被100整除) 世纪闰年: 年份是整百数的, 必须是400的倍数才是世纪闰年(能被400整除 ...

  2. 手把手教你输出1000到2000之间的闰年

    手把手教你输出1000到2000之间的闰年的思路 完整代码: #include <stdio.h> int main() {int year = 0;for (year = 1000; y ...

  3. Java打印1900年到2100年之间的闰年,一行打印4个

    public class HW_2 {public static void main(String[] args) {int count = 0;for (int i = 1900; i <=2 ...

  4. python2到100的素数_python输出2到100之间的素数

    目的: 计算2-100之间素数的个数,返回结果 什么是素数? 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 代码实现:# 定义一个列表接受返回的质数 list_num = [ ...

  5. python求2到100间的素数_python输出2到100之间的素数_后端开发

    php实现无限级评论功能_后端开发 php实现无限级评论的方法:1.首先在评论表中加入一个存放父级评论ID的字段,其默认值为0:2.再编写一个递归函数,将评论数据转换成树形结构:3.最后将转换后的评论 ...

  6. 创建一个简单的存储过程(RroGetA_Z),要求输出A到Z之间的26个大写字母

    <SQL Server数据库设计与项目实践> ISBN:978-7-302-40610-5 p121 动手实践-实训内容-(1) (1)创建一个简单的存储过程(RroGetA_Z),要求输 ...

  7. 【Python】青少年蓝桥杯_每日一题_11.03_按要求输出两个正整数之间的数

    编程实现 分别输入两个正整数 M.N,输出 M 到 N 之间(含 M.N)所有可被 7 整除,但不是 5 的倍数的数, 并以逗号分隔按顺序打印在一行. 输入描述:分别输入两个正整数 M.N 输出描述: ...

  8. C语言试题四之计算并输出3到n之间所有素数的平方根之和

    1.题目 请编写函数function,它的功能是:计算并输出3到n之间所有素数的平方根之和 例子:若我们main函数从键盘给n输入5之后,我们需要输出结果为3.968119 输入值n的要求:正整数n, ...

  9. java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...

    有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下. 1.循环输出1到100之间所有能被3或能被4整除的数. package com.hz.loop02; /** ...

  10. (c语言)输出1到100之间的所有素数

    (c语言)输出1到100之间的所有素数(函数实现) 方法一: //输出1-100之间的所有素数要求编写函数(函数实现) #include<stdio.h> #include<stdl ...

最新文章

  1. 配置Citrix Receiver 3.x、4.x支持添加HTTP站点
  2. php的__FILE__常量和dirname()
  3. [翻译]为什么你不要收缩数据库文件
  4. 云炬WEB开发笔记2-7 代理神器CharlesFiddler
  5. 网络编程释疑之:TCP协议的“流”特性
  6. 什么是Spring Boot?
  7. AliOS Things 维测典型案例分析 —— 内存泄漏
  8. QT| C/C++之win98扫雷外挂增强版
  9. 祝贺Terrylee博客园Post达到100篇
  10. 秒杀 985 毕业生的职场技能
  11. 安全研究员发现 Yandex 浏览器中的 SSRF 缺陷
  12. Android 中AlarmManager升级4.2
  13. FPGA驱动VGA显示
  14. [转载]关于字体的一些常识
  15. DestroyWindow无法销毁的问题
  16. python x 0b1010_下面代码的输出结果是
  17. 网关、开放平台如何设计appKey,appSecret,accessToken的生成和校验机制
  18. 对于M1卡密钥控制字设置的总结
  19. 成都盛铭轩:客服应该怎么做
  20. Ubuntu下SVN工具推荐

热门文章

  1. 激活工业数据价值 2020年建成国家工业互联网大数据中心
  2. 「macOS」“邮件”添加账户指南
  3. cv2库中一些函数的使用
  4. 富媒体广告投放的一些经验
  5. 企业邮箱怎么发邮件,又如何进行查询呢?
  6. 《谈美》读书感想:读书于人生的意义
  7. October CMS - 快速入门 3 创建主题
  8. java 登陆qq_纯java的QQ登陆界面
  9. java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
  10. Elasticsearch安全认证