网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机组成原理实验题解析.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理实验题解析

一.这是一个判断某一年是否为润年的程序,运行可执行程序Ifleap.exe后,输入具体的年份,可输出是本年是否为闰年的提示信息。 DATA SEGMENT ;定义数据段 INFON DB 0DH,0AH,PLEASE INPUT A YEAR: $ ;声明空间存储输入提示信息,其中0d回车,0a换行? Y DB 0DH,0AH,THIS IS A LEAP YEAR! $ ;声明空间存储是闰年提示信息,同上另起一行输出?? N DB 0DH,0AH,THIS IS NOT A LEAP YEAR! $?;声明空间存储不是闰年提示信息,同上另起一行输出? W DW 0;声明空间存储输入年份解析后生成的年份数字?? BUF DB 8 DB ? DB 8 DUP(?)?;声明空间作为缓冲区,总共10个字节,第一个表示准备接受的字? DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS??;定义一个栈,200字节?? CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX;指定堆栈 LEA DX,INFON ; MOV AH,9 INT 21H ;将infon开始的字符串输出到屏幕 LEA DX,BUF ; MOV AH,10 INT 21H MOV CL, [BUF+1] ;获取实际输入长度 LEA DI,BUF+2 ?;获取字符串首地址?? CALL DATACATE;调用子程序,将输入字符串传化为年份数字?? CALL IFYEARS ;调用子程序,判断是否闰年?? JC A1 ;如果进位标记C为1则跳转到a1? LEA DX,N ;否则输出不是闰年信息?? MOV AH,9 INT 21H JMP EXIT A1: LEA DX,Y ?;输出是闰年信息?? MOV AH,9 INT 21H EXIT: MOV AH,4CH ?????;程序结束? INT 21H DATACATE PROC NEAR ;指明该子程序在主程序段内?? PUSH CX; ;备份 DEC CX LEA SI,BUF+2?;将buf中第一个字符(即buf的第三个字节数据)的地址赋给si?? TT1: INC SI?;循环,使得si指向最后一个字符(即buf中回车符前面的一个)?? LOOP TT1 ;LEA SI,CX[DI] POP CX;回复cx MOV DH,30H ;辅助数据,用来将数字字符对应的ASCII码转换为其代表的数字本身? MOV BL,10;辅助数据,用来在每进一位时使得ax乘以10 MOV AX,1;ax用来装对应位的权值 L1: PUSH AX;备份ax?? SUB BYTE PTR [SI],DH ;将单个字符转换为对应的数字 MUL BYTE PTR [SI];将单个字符转换为对应的数字 ADD W,AX?;加到结果上(易知当所有位都加完时,即是我们想要的年份数字)? POP AX?;恢复ax? MUL BL;权值乘以10 DEC SI ?;si指向更高一位数字 LOOP L1 RET?;子程序返回?? DATACATE ENDP IFYEARS PROC NEAR指明该子程序段在主程序段内,该子程序用于检测是否是闰年,接收年份数据,改变C标记位表示不同结果?? ??push??bx?????????????;备份bx

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档