• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Assembler Fasm. Организовать вычисления по формуле

Charlotte

Новые
Регистрация
20 Апр 2014
Сообщения
63
Реакции
0
Баллы
0
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 ?

Заранее огромное спасибо за помощь!!!
 
Код:
CSEG segment
		org	100h
		start:
		a equ ?
		c equ ?
		d equ ?
		e equ ?
		f equ ?
                      xor ah,ah
		mov al,a
		add al,#5
		mov dl,al
		mov al,c
		add al,d
		sub dl,al
		mov al,e
		sub al,f
		sub al,#7
		add al,a
		add al,dl
k equ al
		
		CSEG ends
end	start
Именно фасмом никогда не пользовался.
 
Последнее редактирование:
mike_, спасибо вам! но мне очень нужно на Fasm!!!
 
Назад
Сверху