숫자의 합계를 찾기 위해 어셈블러 코드를 만드는 프로젝트가 있습니다. 어셈블러 코드. 루프 및 덧셈 만 사용하여 곱셈없이 제곱합을 계산합니다. 무한 루프. ASCII/16 진수
다음 동작을 수행하기위한 어셈블리 언어 프로그램 해주기 입력은 양의 정수이고 N은 다음 N. 동일한 정수의 합을 계산을 = 1 + 4 + 9 + ⋯ +사용자 입력이 ALWAYS 것 두 자리 숫자 (01에서 10 사이) 여야합니다. 입력의 정확성을 검사 할 필요가 없습니다. 예를 들어, 사용자 입력이 "10"이면 프로그램은 "385"를 출력합니다. 사용자 입력이
경우 03 출력되어야한다 (14), 즉 1 + 4 + 9
사용어셈블러는 모리스 마노 책에 기초한다. 다음은 사용할 수있는 모든 코드입니다. 나는 합계를 계산하는 루핑 시스템을 생각해 냈지만 무한하고 1보다 큰 숫자를 입력하면 충돌이 발생합니다. 출력을 ASCII로 다시 변환하는 방법을 잘 모릅니다.
/read the first character
CIF1, SKI /skip if input flag is set
BUN CIF1 /loop until input flag is set
INP /read a character from the input reg
ADD NZR /add -30 hex (subtract 30 hex)
STA ASD /store value into MSD
CLA /clear the accumulator
/SZA /only if input is 0, otherwise it is 10
/read the second character
CIF2, SKI
BUN CIF2
INP
ADD NZR
STA BSD /store second number in memory
CLA /clear accumulator
/loop for calculation
BUN ACCU /call subroutine ACCU to find SUM/TOTAL
LOOP,LDA SQR /load the odd value i.e. 1, 4, 9, 16...
ADD TWO /adds two
ADD ODD /adds the odd number
STA SQR /store the square
LDA ODD /load the stored odd number
ADD TWO /adds two current odd value
STA ODD /stores the odd value i.e. 1, 3, 5, 7...
/BUN ACCU /branch to subroutine to find SUM/ANSWER
ACCU,LDA SQR //Accumulate the total SUM
ADD SUM
STA SUM
LDA BSD /Load second input number
ADD SUB /subtract 1 from input number until hits 0?
SZA /skip out of loop
BUN LOOP /loop to top
/output the sum
LDA SUM
ADD PZR
OUT
HLT /end program
/output third character?????
/declared variables
ODD, DEC 1 /first vale(1) and new storage for value when odd+2
TWO, DEC 2 /add 2 to the odd numbers: 1+2=3, 3+5=7 etc.
SQR, DEC 1 /first square(1) and stores the square i.e. 4, 9, 16, 25
SUM, DEC 0/Starts at 1, The ANSWER or sum of numbers
SUB, DEC -1/ Subtract 1 from input #(until 0)u
ASD, DEC 0 /where first character is stored
BSD, DEC 0 /where second character is stored
CSD, DEC 0 /Third character output if needed
NZR, HEX -30 /converts to input
PZR, HEX 30 /converts to output
END
당신은 디버깅을 수행해야합니다. –
코드를 여러 번 추적하면서 최선을 다해 보았습니다. – snipshow7