Вычислить наибольшее целое положительное число а, удовлетворяющее условию - Assembler

Узнай цену своей работы

Формулировка задачи:

1.Вычислить наибольшее целое положительное число а, удовлетворяющее условию:3a^2-127a<0 Прошу вас, я частично понимаю Ассемблер, но я эти задачи не знаю как решать.Прошу вас

Решение задачи: «Вычислить наибольшее целое положительное число а, удовлетворяющее условию»

textual
Листинг программы
xor cx,cx
M:inc cl
  mov ax,cx
  shl ax,1
  add ax,cx
  sub ax,127
  imul cx
  test dh,80h
  jnz M
Fin:dec cl    ; результат в CL

Объяснение кода листинга программы

  1. xor cx,cx — в данном случае используется операция побитового исключающего или (XOR), результат которой будет равен 0. Это необходимо для инициализации счётчика.
  2. M:inc cl — увеличение значения счётчика на единицу.
  3. mov ax,cx — значение счётчика (CX) переносится в регистр AX.
  4. shl ax,1 — сдвиг значения регистра AX вправо на один байт с сохранением значения в регистре AX.
  5. add ax,cx — сложение значения регистра AX и счётчика (CX), результат сохраняется в регистре AX.
  6. sub ax,127 — вычитание из значения регистра AX числа 127, результат сохраняется в регистре AX.
  7. imul cx — умножение значения счётчика (CX) на значение регистра AX, результат сохраняется в регистре AX.
  8. test dh,80h — сравнение значения в регистре DH с 80 (в десятичной системе это 120), результат вычисления в данном случае будет 0.
  9. jnz M — если предыдущая инструкция вернула 0, то происходит переход на следующую инструкцию, иначе на M.
  10. Fin:dec cl — результат вычислений сохраняется в счётчике (CL).

Оцени полезность:

6   голосов , оценка 3.167 из 5
Похожие ответы