Показать сообщение отдельно
Старый 13.05.2014, 00:11   #1 (permalink)
Charlotte
Member
 
Регистрация: 20.04.2014
Сообщений: 63
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Assembler Fasm. Организовать вычисления по формуле

привет, всем активным участникам этого замечательного форума. Помогите, пожалуйста, написать программу на Fasm (Assembler).

задание:
организовать вычисления (сложение и вычитание) по формуле
K=(a+5)-(c+d)+(e-f-7+a)

вот пример:
Код:
x=(a+b)/c
x =двойное слово
а=byte
b,c=слово
use16
org 100h
 movsx ax,[a]    {ax=a}
 add ax,[b]       {ax=b+a}
 cwd                {dx:ax=a+b}
 idiv [c] 
 cwd               {dx:ax=(a+b)/c}
 mov word[x],ax  {отправляем слово ах}
 mov word[x+2],dx  {остоток от деления x+2}


 mov ax,4c00h
 int 21h
;--------------
a db 5
b dw 5
c dw 2
x dd ?
вот ещё один пример:
Код:
s=s0+vt+at2/2
use16
org 100h
 mov al,[v0] {al=v0}
 mov cl,[t]{cl=t}
 mul cl{ax=al*cl=v0t}
 mov bx,ax{bx=ax=v0t}

 mov al,[a] {al=a}
 mul cl{ax=al*cl=a*t}
 mov ch,0{перетворюємо t в слово}
 mul cx {dx:ax=ax*cx=at2}
 mov cl,2{cl=2}
 div cx{ax=(ax/2)=(at2/2)

 add ax,bx{ax=ax+bx=v0t+at2/2}
 add al,[x0]{ax=ax+x0=x0+v0t+at2/2}
 adc ah,ch

 mov [x],ax {x=ax}

 mov ax,4c00h{конец}
 int 21h{конец}
;--------------
x0 db 100
v0 db 7
a db 3
t db 25
x dw ?
Заранее огромное спасибо за помощь!!!
Charlotte вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070