0
저는 어셈블리 언어에 익숙하지 않습니다. 수업에서 우리는 LC3 시뮬레이터를 사용하는 프로그램을 만들고 있습니다. 아래 코드는 내 분할 알고리즘입니다.어셈블리 : LC3 Division
DIVISION:
AND R3, R3, 0 ; Zero out R3 /This is the remainder
AND R4, R4, 0 ; Zero out R4 /This is the quotient
NOT R3, R2 ; Takes the inverse of 2nd input ->R3
ADD R3, R3 #1 ; Add one to the inverse (for 2s comp)
LOOPD
ADD R4, R4, #1 ; Add 1 to R4 repeatedly
ADD R1, R1, R3 ; Subtract input2 from R1
BRN NEGATIVE
BRZ ZERO
BRP LOOPD
NEGATIVE
ADD R4, R4, #-1
ADD R3, R1, R2
; Done with divison algorithm.
ZERO
LD R0, DECCONV ; Load Decimal converter
ADD R3, R3, R0 ; Convert back to ASCII
ADD R4, R4, R0 ; Convert back to ASCII
ST R3, REMRESULT ; Store the remainder result
ST R4, DIVRESULT ; Store the division result.
LD R0, DIVRESULT ; Load Division result into R0
PUTC ; Print it.
LEA R0, DIVSTRING ; Load the string for division.
PUTS ; Print the string.
LD R0, REMRESULT ; Load Remainder result into R0
PUTC ; Print it.
LEA R0, REMSTRING ; Load the string for remainder
PUTS ; Print the string.
예를 들어
나는 두 개의 입력을 입력 : 4, 2 나는 나머지의 몫과 1 두를 얻을. 9,3을 입력하면 6 나머지 1 ..
아이디어가 있으십니까?