Вычислить значение выражения: (a^2+b(2c-d)^2)/3e - Assembler (223345)
Формулировка задачи:
Вычислить f=(a^2+b(2c-d)^2)/3e , операнды – слова, вычисления беззнаковые.
Решение задачи: «Вычислить значение выражения: (a^2+b(2c-d)^2)/3e»
textual
Листинг программы
mov ax,3 mul e mov cx,ax mov ax,a mul ax mov bx,ax mov si,dx mov ax,c shl ax,1 sub ax,d mul ax mul b add ax,bx adc dx,si div cx mov f,ax
Объяснение кода листинга программы
- mov ax,3 - Переменная
aравна 3 - mul e - Переменная
aумножается наe - mov cx,ax - Переменная
aкопируется вcx - mov ax,a - Переменная
aиспользуется как метка - mul ax - Переменная
aумножается наax - mov bx,ax - Переменная
bxкопируется вax - mov si,dx - Переменная
siкопируется изdx - mov ax,c - Переменная
cиспользуется как метка - shl ax,1 - Переменная
axсдвигается вправо на 1 бит - sub ax,d - Переменная
axвычитается изd - mul ax - Переменная
axумножается наax - mul b - Переменная
bумножается наax - add ax,bx - Переменная
axскладывается сbx - adc dx,si - Переменная
dxскладывается соsi - div cx - Переменная
cxделится наax - mov f,ax - Переменная
fкопируется изaxОбратите внимание, что в коде отсутствуют комментарии, объясняющие, что делает каждый шаг. Это обычная практика при написании кода на ассемблере, где каждая инструкция должна быть максимально краткой и информативной.