当前位置:首页 > 福州大学汇编语言课程作业1~5
作业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 WRITESTRING MOV CL,COUNT INPUT: CALL READINT MOV DAT[ESI],AL INC ESI LOOP INPUT MOV ESI,0 MOV CL,COUNT
JUDGE: MOV AL,DAT[ESI] CMP AL,0 JNL ZHENG FU: INC T1 JMP NEXT ZHENG: INC T0 NEXT: INC ESI LOOP JUDGE XOR EAX,EAX LEA EDX,PROMPT3 CALL WRITESTRING MOV AL,T0 CALL WRITEINT MOV EDX,OFFSET PROMPT CALL WRITESTRING MOV AL,T1 CALL WRITEINT CALL CRLF JMP START END START 2.2求最大数
内容:DAT开始的字单元中存放N个无符号数,求出最大数存入MAX单元中。
DAT DW X1,……,XN MAX DW ?
INCLUDE IRVINE32.INC
共分享92篇相关文档