Родились сегодня:
vladymyrlem
antonovich


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

740

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

322

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

277

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

210

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

129

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

129


ID: 400669

epimkin

Профессионал

119


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-13 03:16:01-standard


Создание программ на языке Assembler.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 159697

Раздел: Assembler
Автор вопроса: Грязнева Ольга Михайловна
Дата: 05.02.2009, 18:49 Консультация закрыта
Поступило ответов: 0

Помогите пожалуйста!Что нужно дописать, чтоб программа обрабатывалась один раз:
mov eax,20
mov ebx,8
push eax
push ebx
call my_subroutin
pop ebx
pop eax
my_subroutin proc near
mov eax,a
mov ebx,2
mul ebx
mov flag,eax
mov ebx,4
mov eax,b
mul ebx
add eax,flag
add eax,b
add eax,c
mov ebx,-1
mul ebx
and eax,1111111110000011b
or eax, 0000000001100011b
ret
a dd -6
b dd -4
c dd -16
flag dd ?

Ответов пока не поступило

Мини-форум консультации # 159697
Boriss

1

= общий =    05.02.2009, 20:19

Не совсем понятен вопрос, но скорее всего имеете в виду "чтобы подпрограмма" ... Для этого нужно перед

my_subroutin proc near


написать код выхода их программы.
То есть, у Вас вызывается продпрограмма

call my_subroutin


а потом все плавно перетекает в подпрограмму.
Ведь

my_subroutin proc near


это просто метка, и ничего больше

q_id

Лысков Игорь Витальевич

Мастер-Эксперт

ID: 7438

2

= общий =    06.02.2009, 13:28

Должно быть, что-то типа такого:

Код
subr:
mov eax,20
mov ebx,8
push eax
push ebx
call my_subroutin
pop ebx
pop eax

ret

my_subroutin proc near 
mov eax,a
mov ebx,2
mul ebx
mov flag,eax
mov ebx,4
mov eax,b
mul ebx
add eax,flag
add eax,b
add eax,c
mov ebx,-1
mul ebx
and eax,1111111110000011b
or eax, 0000000001100011b
ret 
a dd -6
b dd -4
c dd -16
flag dd ?

Откуда-то вызываем подпрограмму subr, которая, в свою очередь, вызывает my_subroutin
Так или нет?
Чтобы точнее ответить, было бы неплохо увидеть весь текст программы...

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

3

= общий =    06.02.2009, 18:07

Что нужно, чтоб программа обрабатывалась один раз при помощи команды безусловного перехода jmp:
.model tiny
.code
.386
org 100h
start:
mov eax,20
mov ebx,8
push eax
push ebx
call my_subroutin
pop ebx
pop eax
my_subroutin proc near
mov eax,a
mov ebx,2
mul ebx
mov flag,eax
mov ebx,4
mov eax,b
mul ebx
add eax,flag
add eax,b
add eax,c
mov ebx,-1
mul ebx
and eax,1111111110000011b
or eax, 0000000001100011b
ret
a dd -6
b dd -4
c dd -16
flag dd ?
my_subroutin endp
end start

Boriss

4

= общий =    06.02.2009, 21:38

Что-то не понял... Вам нужно, чтобы не было

call my_subroutin

? А был бы вместо него jmp?

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 80

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 72

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0

Kdsfofwe21

2-й класс

Рейтинг: 0