Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
jenokizm
21 / 37 / 14
Регистрация: 27.03.2014
Сообщений: 754
#1

Разница в вызове процедур MASM, TASM - Assembler

24.08.2016, 16:41. Просмотров 557. Ответов 2
Метки нет (Все метки)

Привет, балуюсь...
полностью одинаковые процедуры с аргументом. на тасм32 вот так вызываю и все работает
Assembler
1
call myproc, 300
но тоже самое на масм32 выдает непонятную ошибку
error A2008: syntax error : ,
Добавлено через 5 минут
пс если убрать запятую до передаваемого числа, то выдаст такую ошибку
error A2206: missing operator in expression

http://www.cyberforum.ru/assembler/thread182740.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2016, 16:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разница в вызове процедур MASM, TASM (Assembler):

MASM,TASM
Очевидно, что программирование на макроассемблере легче для восприятия чем на...

Отличие masm от tasm
В вузе изучаем tasm, однако, я бы не назвал это изучением, скорее наоборот,...

FASM/MASM/TASM
В ентернетах очень много различных примеров для различных ассемблеров, я решил...

TASM, MASM, или что?
Помогите плиз, нужно срочно какой-нибудь ассемблер компилятор!! С Р О Ч Н О!!...

Полезные макросы для MASM и TASM
Не претендую на создание чего-то нового и гениального, но макросы довольно...

2
R71MT
2979 / 1109 / 264
Регистрация: 29.07.2014
Сообщений: 2,119
Записей в блоге: 4
24.08.2016, 18:03 #2
Лучший ответ Сообщение было отмечено jenokizm как решение

Решение

Assembler
1
2
3
4
5
6
7
8
9
;вызов процедуры через CALL
---------------------------
  push  300
  push  200
  call  myProc
 
;..и через INVOKE
;--------------------------
  invoke  myProc,200,300
0
Constantin Cat
1628 / 940 / 356
Регистрация: 28.02.2015
Сообщений: 2,185
Завершенные тесты: 1
25.08.2016, 16:17 #3
разработчики TASM'а давно ввели макрос call - аналогичный команде вызова подпрограммы. Компилятор автоматически заменяет строку вызова
Assembler
1
2
3
      7 0105                 @@01:   call    inpNumber,di
1     8 0105  57                 PUSH    DI
1     9 0106  E8 0068                CALL    INPNUMBER
также автоматически в подпрограммах подставляется [BP+arg_N] вместо имен переменных
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
     66 0171                 inpNumber       proc    a:word
     67                  uses    bx,cx,dx,si,di
1    68 0171  55                 PUSH    BP
1    69 0172  8B EC              MOV     BP,SP
1    70 0174  53                 PUSH    BX
1    71 0175  51                 PUSH    CX
1    72 0176  52                 PUSH    DX
1    73 0177  56                 PUSH    SI
1    74 0178  57                 PUSH    DI
1    75 0179  BE 000A                mov     si,10
     76 017C  33 D2              xor     dx,dx
     77 017E  8B 46 04               mov     ax,a
Одним словом программист не думает, как лежат параметры в стеке и не считает смещение параметра в стеке.

MASM этого делать не стали.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2016, 16:17
Привет! Вот еще темы с решениями:

из masm в tasm кто может переделать
;Program to Find all the 3 digit integers which ;equal the sum of the cubes...

конвертирования с языка masm на язык tasm
Привет всем подскажите пожалуйста программку для конвертирования с языка masm...

FAQ для раздела Assembler, MASM, TASM
Краткое содержание раздела F.A.Q. что лучше почитать по ассемблеру?Как...

Организация тем в разделе Assembler, MASM, TASM
Всем привет! Друзья, возник вопрос: как лучше организовать темы в разделе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru