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

计算机组成作业课程作业二.doc

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

Harbin Institute of Technology 《计算机组成技术教程》 课程作业二 课程名称: 计算机组成技术教程 题 目: 数据的存储与转换 的汇编程序实现 院 系: 班 级: 姓 名: 学 号: 指导教师: 设计时间: 哈尔滨工业大学 数据的存储与转换的汇编程序实现 问题重述 从键盘输入一串数字,即这串数字的ASCII码,由此以补码的形式将这串数字所代表的十进制数对应的二进制数存入内存中; 将1)存入的补码形式的二进制数取出并以十进制形式显示在屏幕上。 问题分析 此次作业分为两个部分。首先,是将输入的ASCII码对应的十进制数转换成二进制数,并以补码形式保存;其次,将保存的补码取出、还原并以十进制格式显示。 第一部分涉及到的过程有:数据的输入及保存、数据代表的十进制转换成原码二进制,原码转换成补码。 第二部分涉及的过程有:补码转换为原码、原码转换为十进制、输出显示。当然,这一部分是不能利用输入时的结果来直接输出。 汇编程序及流程图 DATA SEGMENT ASCII DB 7 DUP($) BINARY DB 2 DUP(?) ASCII2 DB 7 DUP($) TEXT1 DB Input a number(-32768~+32767):,$ TEXT2 DB 0DH,0AH,THe input has an error!,0DH,0AH,$ TEXT3 DB 0DH,0AH,The binary of the number is:,$ TEXT4 DB 0DH,0AH,The ascii code of the number is:,$ DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV AH,09H LEA DX,TEXT1 INT 21H ;输出提示字符 CALL INPUT CALL ASCIITOBINARY MOV AH,09H LEA DX,TEXT3 INT 21H ;输出提示字符 CALL OUTPUTBINARY CALL BINARYTOASCII MOV AH,09H LEA DX,ASCII2 INT 21H ;输出ASCII码 EXIT: ;退出程序 MOV AH,4CH INT 21H INERROR: ;输入错误,退出 MOV AH,09H LEA DX,TEXT2 INT 21H JMP EXIT INPUT PROC NEAR ;输入子程序 PUSH AX PUSH BX PUSH CX MOV AH,01H ;输入第一个字符并检测是否为+或- MOV BX,OFFSET ASCII INT 21H CMP AL,- JZ GOON CMP AL,+ JNZ INERROR GOON: MOV [BX],AL INC BX MOV CX,5 INLOOP: INT 21H CMP AL,0DH ;输入以回车结束 JZ FINISH CMP AL,0 JL INERROR CMP AL,9 JG INERROR MOV [BX],AL INC BX LOOP INLOOP FINISH: POP CX POP BX POP AX RET INPUT ENDP ASCIITOBINARY PROC NEAR ;ASCII码转换为二进制子程序 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI MOV BX,OFFSET ASCII MOV DX,0 ;DX用来记录数字的个数 MOV AH,0 INC BX MOV CX,6 BEGIN: ;将输入的数字压栈 MOV AL,[BX] CMP AL,$ JZ A1 SUB AX,30H ;将输入的ASCII码减30H即得数字的二进制表示 PUSH AX INC DX INC BX LOOP BEGIN A1: MOV CX,DX MOV BX,1 MOV SI,0 BEGIN2: POP AX MUL BX ADD SI,AX JO B MOV AX,10 ;BX乘以10存入BX MUL BX MOV BX,AX LOOP BEGIN2 B: CMP SI,8000H JNZ INERROR MOV BX,O

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档