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


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

ID: 259041

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

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

391

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


ID: 401284

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

Советник

379

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


ID: 401888

puporev

Профессор

215

Россия, Пермский край


ID: 400669

epimkin

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

111


ID: 405338

vovaromanov.jr

1-й класс

103


ID: 242862

Hunter7007

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

29

Россия, Омск


ID: 137394

Megaloman

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

25

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


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-27 22:16:01-standard


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

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

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

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

Очень нужна помощь, помогите пожалуйста: Как с помощью безусловного перехода jmp изменить пограмму чтоб она обрабатывалась 1 раз.(желательно к вечеру)
программа такая :
.model tiny
.code
.386
org 100h
start:
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 ?
my_subroutin endp
end start

Здравствуйте, Грязнева Ольга Михайловна!

Вы формируете программу с 16-ти битными сегментами, использование 32-х битных команд для работы со стеком некорректно(хотя компилятор не реагирует на это), т.к может ввести в заблуждение программиста, к примеру: при передаче параметров через стек и последуюшим его(стека) корректировкой командой ret ХХ.
Отсюда правильнее было бы так:
Код
mov bx,offset noCall
push bx
jmp my_subroutin 
noCall:

т.к. возврат из подпрограммы происходит по команде retn, а это 16-ти битная команда.
Удачи!

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

Старший модератор
16.02.2009, 14:08
Мини-форум консультации # 160380
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

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

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

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

Рейтинг: 162

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

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

Рейтинг: 70

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

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

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0

Kdsfofwe21

2-й класс

Рейтинг: 0