Вывести третью с конца цифру в записи положительного целого числа - Assembler

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

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

Нужно написать програму. Я понимаю что нужно поделить на 100, а потом вывести остаток от деления на 10, но записать на ассемблере Не могу. Помогите написать программу (вставкой в код С ++). Я вот чтото такое написал:
#include 
using namespace std;
 
// Вивести третю з кінця цифру в записі додатного цілого числа.
 
void main() 
{
    int number, revers_third_digit;
    cin >> number;
    __asm 
    {
        mov eax, 100
        mov edx, number
        cdq
        div eax
        push eax
        mov eax, printf
        
        pop ebx 
    }
    
    system("pause");
}

Решение задачи: «Вывести третью с конца цифру в записи положительного целого числа»

textual
Листинг программы
mov al,123
aam
mov al,ah
aam
    
mov dl,ah
or dl,48
mov ah,2
int 21h

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

  1. Сначала в коде переменной al присваивается значение 123.
  2. Затем выполняется команда aam, которая преобразует десятичное число в шестнадцатеричное.
  3. Результат сохраняется в регистре ah.
  4. Затем из регистра ah берется третья цифра, начиная с конца (в данном случае это 3), и сохраняется в регистре dl.
  5. Затем к dl добавляется 48, чтобы получить ASCII-код символа.
  6. Затем в регистре ah устанавливается значение 2.
  7. И наконец, выполняется команда int 21h, которая выводит значение переменной ah на экран.

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

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