현재 어셈블리 언어를 배우고 있습니다. 나는 가장 짧은 것에서 가장 큰 것까지 두 숫자를 교환하는 빠른 짧은 함수를 만들 수 있었다. 세 가지 숫자로이 작업을 수행 할 동일한 기본 토대를 적용하고 있지만 비교를 수행 할 때마다 무한 루프가됩니다. 이 함수는 *60
을 사용하여 선언하고 있습니다. 어떻게 3 가지 숫자를 가장 적은 것부터 가장 큰 것으로 정확하게 정렬 할 수 있습니까? 또한, 동일한 기능을 추가 변경없이 두세 개의 숫자를 수행하는 방법이 있습니까?최소 세 자리 숫자 중 가장 큰 숫자로 정렬
몇 가지 어셈블리 프로그램은 구문이 약간 변경되었습니다. HERE은 내가 현재 사용하고있는 교육용 어셈블리 Little Man 컴퓨터 시뮬레이터의 링크입니다. 두 개의 숫자와
근무 스왑 : 그것은 스왑 코드를 세 번 사용하기 때문에
INP //Input x number
STO 99 //Store x number
INP //Input y number
STO 98 //Store y number
BR 60 //Jump to function *60
HLT //End run
*60 //Number SWAP function
LDA 99 //Load x
STO 87 //Move x to mailbox 87
LDA 98 //Load y
STO 86 //Move y to mailbox 86
SUB 87 //Subtract y - x
BRP 71 //Branch to line 71 if result is positive
LDA 86 //SUB 87 gives a negative result- then y is smallest number. Load y
OUT //Display y
LDA 87 //Load x- the greater number.
OUT //Display x
HLT //End here since y > x
LDA 87 //BRP 71 branches here- then x is smallest number
OUT //Display x
LDA 86 //y is the greater number
OUT * //display y
당신이 내'스왑처럼 60' * 알고 two' 예를 그런 식으로 일이겠습니까 순서 두 번째 숫자와 세 번째 숫자를 비교하는 작업을 계속 진행하려면? – CodingWonders90