Определить третью справа цифру данного натурального числа - Assembler
Формулировка задачи:
1. Дано натуральное число N. Определить третью справа его цифру. на Асемблере
Решение задачи: «Определить третью справа цифру данного натурального числа»
textual
Листинг программы
@stack segment para stack db 1024 dup(?) @stack ends @data segment N dw 12345 K dw 3 D dw ? Msg db 'Result: ' Result db ? CrLf db 0Dh, 0Ah, '$' @data ends @code segment assume cs:@code, ds:@data, ss:@stack main proc ;инициализация сегментного регистра данных mov ax, @data mov ds, ax ;вычисление K-ой цифры mov ax, [N] ;ax:=N mov bx, 10 mov cx, [K] ;for i:=1 to K do @@For: mov dx, 0 ; dx:=ax mod 10 div bx ; ax:=ax div 10 loop @@For mov [D], dx ;D:=dx ;вывод результата mov ax, dx aam add ax, '00' mov [Result],al mov ah, 09h lea dx, [Msg] int 21h ;завершение программы mov ax, 4C00h int 21h main endp @code ends end main
Объяснение кода листинга программы
- Начальная инициализация сегментного регистра данных
- Вычисление K-ой цифры числа N — Переменная N содержит 12345 (начальное натуральное число) — Переменная K содержит 3 (третья справа цифра) — В цикле for перебираются цифры числа N от старшей к младшей — Результат сохраняется в переменной D
- Вывод результата — Результат выводится в формате строки с использованием функции int 21h — Результат выводится на экран с использованием функции lea dx, [Msg] и int 21h
- Завершение программы — Завершение программы выполняется с использованием функции int 21h и кода 4C00h
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д