- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福州大学汇编语言课程作业15
作业1.1
题目: 设某存储区有一数组ARRAY,现要求对数组中数据分别按正数(含0)和负数的绝对值累加,并统计正数和负数的个数。累加和与统计个数分别存入SUM1、SUM2、CUNT1和CUNT2单元中。
INCLUDE IRVINE32.INC
.DATA
DAT DD 1100B,1000B
SUM DD ?
.CODE
START: XOR EAX,EAX
MOV ESI,0
MOV EAX,DAT[ESI]
ADD ESI,4
ADD EAX,DAT[ESI]
MOV SUM,EAX
EXIT
END START
1.2两个32位数的相加运算
内容: DAT开始的单元中存放两个32位二进制 数,两个数相加后结果存入SUM单元中。 ( SUM为32位 )
DAT DD X1,X2
SUM DD ?
INCLUDE IRVINE32.INC
.DATA
ARRAY DB 50 DUP(?)
SUM1 DB ?
SUM2 DB ?
CUNT1 DB ?
CUNT2 DB ?
COUNT DB ?
PROMPT1 BYTE 要输入几个数:,0
PROMPT2 BYTE 请输入数:,0
PROMPT3 BYTE 正数的个数和正数的和为:,0
PROMPT4 BYTE 负数的个数和绝对值和为:,0
PROMPT5 BYTE 是否退出?(Y/N),0
.CODE
START:
XOR EAX,EAX
XOR EBX,EBX
XOR ECX,ECX
XOR EDX,EDX
LEA EDX,PROMPT1
CALL WRITESTRING
CALL READINT
CMP EAX,0
JNG START
MOV COUNT,AL
MOV CL,COUNT
MOV ESI,0
LEA EDX,PROMPT2
CALL WRITESTRING
INPUT: CALL READINT
MOV ARRAY[ESI],AL
INC ESI
LOOP INPUT
XOR EAX,EAX
XOR EBX,EBX
XOR ECX,ECX
XOR EDX,EDX
MOV ESI,0
MOV CL,COUNT
DEAL: MOV CH,ARRAY[ESI]
CMP CH,0
JNL ZHENG
FU: NEG CH
ADD BL,CH
INC DL
JMP NEXT
ZHENG: ADD AL,CH
INC DH
NEXT: INC ESI
DEC CL
CMP CL,0
JNE DEAL
MOV SUM1,AL
MOV SUM2,BL
MOV CUNT1,DH
MOV CUNT2,DL
XOR EAX,EAX
LEA EDX,PROMPT3
CALL WRITESTRING
MOV AL,CUNT1
CALL WRITEINT
CALL CRLF
MOV AL,SUM1
CALL WRITEINT
CALL CRLF
LEA EDX,PROMPT4
CALL WRITESTRING
MOV AL,CUNT2
CALL WRITEINT
CALL CRLF
MOV AL,SUM2
CALL WRITEINT
CALL CRLF
LEA EDX,PROMPT5
CALL WRITESTRING
CALL READCHAR
CMP EAX,Y
JE QUIT
CALL CRLF
JMP START
QUIT: EXIT
END START
2.1统计正数(负数)的个数
内容:DAT开始的单元中存放N个字节有符号数,统计正数的个数存入T0单元中;负数的个数存入T1单元中;
Dat DB X1,……,XN
T0 DB ?
T1 DB ?
INCLUDE IRVINE32.INC
.DATA
DAT DB 50 DUP(?)
T0 DB ?
T1 DB ?
COUNT DB ?
PROMPT1 BYTE 请输入个数:,0
PROMPT2 BYTE 请输入数:,0
PROMPT3 BYTE 正数和负数的个数分别是:,0
PROMPT BYTE 、,0
.CODE
START: MOV T0,0
MOV T1,0
XOR EAX,EAX
XOR ECX,ECX
MOV ESI,0
LEA EDX,PROMPT1
CALL WRITESTRING
CALL READINT
MOV COUNT,AL
LEA EDX,PROMPT2
CALL WRITESTRI
文档评论(0)