LC-3 Conditionals (Новое в этом) Просто ищу руководство или ответы - PullRequest
0 голосов
/ 11 сентября 2018

Я должен написать программу, которая запрашивает 3 положительных числа (меньше 10). Затем выведите наибольшее и наименьшее число. Я чувствую, что нахожусь в тупике, и понятия не имею, что делать дальше. Любая помощь будет принята с благодарностью.

.ORIG x3000
LEA R0, MyNameID    ;Show name and ID
PUTS

LEA R0, EnterNum1   ;Print enter number 1
PUTS
GETC R1
OUT

LEA R0, EnterNum2   ;Print enter number 2
PUTS
GETC R2
OUT

LEA R0, EnterNum3   ;Print enter number 3
PUTS
GETC R3
OUT

halt     

MyNameID .STRINGZ "\nName, ID number: "
EnterNum1 .STRINGZ "\nPlease enter number 1:"
EnterNum2 .STRINGZ "\nPlease enter number 2:"
EnterNum3 .STRINGZ "\nPlease enter number 3:"
SmallestNum .STRINGZ "\nThe smallest number is:"
LargestNum .STRINGZ "\nThe largest number is:"
.end

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018
  1. Ни один из регистров, скажем, R1
  2. Затем добавьте 1 к R1 (это, по сути, делает регистрацию отрицательного значения исходного значения)
  3. Теперь добавьте это значение в один из двух других регистров, скажем, R2
  4. BR это значение, чтобы увидеть, если оно отрицательное а. Если его отрицательный, то R1 больше, поэтому ваш код пропустите шаги 5-6
  5. BR для нуля а. Если его ноль, то они равны, поэтому ваш код пропустить шаги 6
  6. руб. За позитив а. Если его положительное значение R2 больше, продолжайте код дальше
  7. Теперь просто повторите шаги с другими регистрами, пока у вас не будет только одного, а затем выведите его!
0 голосов
/ 12 сентября 2018

Так что вам нужно отменить один из этих регистров, щелкнув битами, а затем добавив один. Затем, если вы добавите это отрицательное значение к другому из ваших чисел в регистре, сумма будет равна нулю, если они равны по значению (до отрицания). Или сумма будет положительной, если второе число больше. Или сумма будет отрицательной, если первое число отрицательно. Используйте BRz BRn и BRp, чтобы переходить к соответствующим меткам. Оттуда сравните тот же отрицательный номер с вашим третьим номером, используя тот же процесс сложения. Таким образом, вы можете определить, какое значение является наибольшим, а какое наименьшим.

...