Вычислить: D = (A*B)-С; E = (C/B)+A - Assembler
Формулировка задачи:
A (integer), B (integer), C (longint).
Вычислить: D = (A*B)-С; E = (C/B)+A.
Решение задачи: «Вычислить: D = (A*B)-С; E = (C/B)+A»
textual
Листинг программы
.model small .stack 100h .data A dw 1234 B dw -5678 C dd -75386 D dd ? E dw ? .code main proc mov ax, @data mov ds, ax mov ax, A imul word ptr B sub ax, word ptr C sbb dx, word ptr C+2 mov word ptr D, ax mov word ptr D+2, dx mov ax, word ptr C mov dx, word ptr C+2 idiv word ptr B add ax, A mov E, ax mov ax, 4C00h int 21h main endp end main
Объяснение кода листинга программы
- Устанавливаем сегмент данных на сегмент стека. .model small .stack 100h
- Определяем переменные. .data A dw 1234 B dw -5678 C dd -75386 D dd ? E dw ?
- Код программы. .code main proc mov ax, @data mov ds, ax
- Вычисляем D = (A*B)-C. mov ax, A imul word ptr B sub ax, word ptr C sbb dx, word ptr C+2 mov word ptr D, ax mov word ptr D+2, dx
- Вычисляем E = (C/B)+A. mov ax, C mov dx, C+2 idiv word ptr B add ax, A mov E, ax
- Завершаем программу. mov ax, 4C00h int 21h main endp end
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д