Найдите k-ю цифру числа n справа - Assembler
Формулировка задачи:
n и k натуральных чисел. найдите k-ю цифру числа n справа.
Решение задачи: «Найдите k-ю цифру числа n справа»
textual
Листинг программы
@stack segment para stack db 1024 dup(?) @stack ends @data segment N dw 12345 K dw 4 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
Объяснение кода листинга программы
Список элементов:
- @stack - сегмент стека
- @data - сегмент данных
- N - переменная в сегменте данных, содержащая число 12345
- K - переменная в сегменте данных, содержащая число 4
- D - переменная в сегменте данных, содержащая результат вычисления (4-я цифра числа 12345)
- Msg - строка в сегменте данных, содержащая текст 'Result: '
- Result - переменная в сегменте данных, содержащая результат вычисления (4-я цифра числа 12345)
- CrLf - строка в сегменте данных, содержащая символы перевода строки '\r\n'
- ax - регистр общего назначения, используемый в коде для временного хранения значений
- bx - регистр общего назначения, используемый в коде для хранения числа 10
- cx - регистр общего назначения, используемый в коде для временного хранения значения переменной K
- dx - регистр общего назначения, используемый в коде для хранения результата вычисления
- al - регистр общего назначения, используемый в коде для хранения младшего байта результата вычисления
- ah - регистр общего назначения, используемый в коде для хранения старшего байта результата вычисления
- 09h - код операции для вывода строки на экран
- 4C00h - код окончания работы программы
- int 21h - инструкция для выполнения interrupt 21h, обеспечивающая вывод строки на экран В данном коде выполняется следующая задача: нахождение k-й цифры числа n справа. В примере k=4, n=12345. Результатом выполнения программы будет вывод на экран строки 'Result: 4'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д