Определить, является ли заданное число палиндромом - Assembler

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

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

Надо написать программу по такому заданию.... Задано натуральное число, диапазон значений слово. Определить является ли число палиндромом (12321-да,345-нет)... Программу надо написать на языке assembler... Помогите пожалуйста кто чем может....

Решение задачи: «Определить, является ли заданное число палиндромом»

textual
Листинг программы
mov ax,x
xor bx,bx
mov si,10
@01:
xchg ax,bx
mul si
xchg ax,bx
xor dx,dx
div si
add bx,dx
or ax,ax
jnz @01
cmp bx,x

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

  1. mov ax,x - переменной x присваивается значение из регистра ax
  2. xor bx,bx - регистр bx устанавливается в 0
  3. mov si,10 - переменной si присваивается значение 10
  4. @01: - начало цикла
  5. xchg ax,bx - происходит обмен значениями между регистрами ax и bx
  6. mul si - результат умножения переменной si сохраняется в регистре ax
  7. xchg ax,bx - происходит обмен значениями между регистрами ax и bx
  8. xor dx,dx - регистр dx устанавливается в 0
  9. div si - результат деления переменной si сохраняется в регистрах dx:ax
  10. add bx,dx - к значению в регистре bx прибавляется значение из регистра dx
  11. or ax,ax - результат операции or с регистрами ax и ax сохраняется в регистре ax
  12. jnz @01 - если значение в регистре ax не равно 0, то происходит переход к следующей итерации цикла
  13. cmp bx,x - происходит сравнение значения в регистре bx и переменной x
  14. ... - код, который выполняется при обнаружении палиндрома (если он есть)

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

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