Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Assembler Исправить код программы на MASM http://www.cyberforum.ru/assembler/thread1305489.html
.386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc ...
Assembler Программа работает не по алгоритму при ввод пароля
Здравствуйте, помогите пожалуйста найти не стыковку в коде. При вводе пароля, программа работает не так как мне кажется. .model small .data Msg db 'qw' InputMsg db 'Введите пароль: $'...
Assembler Вызов функции которая находится в регистре EAX
Приветствую! Пытаюсь переписать некоторый код, с одного асма на другой) я в этом не силен, прошу не обессудьте. как вызвать функцию, адрес которой прописан в eax, а точнее в eax находится не...
Assembler Массив Здравствуйте. Дан двумерный массив 5*5. Ввести элементы массива с клавиатуры, вывести массив на экран. Переместить значение элемента в , в , в , в . MASM. Нигде не могу найти нормальный ввод... http://www.cyberforum.ru/assembler/thread1303478.html
Assembler Как оптимизировать программу в автоматическом режиме? http://www.cyberforum.ru/assembler/thread1302196.html
#include <stdio.h> int r; int A; int main(){ int i; r = 0; _asm { ; 7 : for (i = 0; i<10; i++){ mov i, 0
Assembler Дан массив из 10 байт. Посчитать количество единиц во всех разрядах, кратных трём: 3, 6, 9, …, 75, 78
Всем здрасьте. Знаю были посты на эту тему,но я сам писал задачу. У меня проблема. С переходами,не получается с ними.Всё по регистрам смотрел,еденицы считает верно,но все равно зацикливается и...
Assembler Как переделать калькулятор, чтобы работал с большими числами?
.model tiny .code JUMPS ; эта директива заставляет генерировать код, при котором можно писать условные ; переходы на расстояние больше 128 байт (а тут такие есть) org 100h start: ...
Assembler ЭВМ Жмакина Не могу понятий почему перезаписываются ячейки в памяти с командами P.S Нужно делать на модели учебной ЭВМ Жмакина RD #10 OUT 1 OUT 11 http://www.cyberforum.ru/assembler/thread1300658.html
Assembler Динамическая библиотека на MASM разбалансировала стек http://www.cyberforum.ru/assembler/thread1300118.html
Динамическая библиотека на MASM при возврате значения разбалансировала стек. Без возвращаемого значения все работает нормально. Необходимо написать динамическую библиотеку на MASM + обертку на C#....
Assembler Ошибка подсчета в программе на ассемблере Всем привет! Сделал программу на ассемблере которая считает пример: B*(A+B)/(C-D-1) Ввожу тестовые данные: А= -50, B= 100, C= 50, D= -99 Программа должна посчитать и выдать ПРАВИЛЬНЫЙ ответ:... http://www.cyberforum.ru/assembler/thread1299973.html
threeDOGnight
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 8
0

Передача параметров в процедуру

20.11.2014, 14:36. Просмотров 1237. Ответов 4
Метки (Все метки)

Доброго времени суток. Нужна ваша помощь, знатоки! Возникла нужда в изучении процедур и передачи в них параметров. Но найти что да как едвали удалось. Вроде делал как написано на немногочисленных ресурсах, а все равно не понимаю в чем мой косяк. Пишу при помощи masm.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
.686
    .model flat, stdcall    
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\masm32.inc
    include \masm32\include\msvcrt.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\msvcrt.lib
.data
_a dw 4
_b dw 2
_c dw 18
_x dw -2
y   dw  ?
tpt db     '%d ',0
wo  db 'wow',0
 
 
.code
;--------------------------
;передача по значению
 
simpleproc proc i:word
 
    mov i, 3
 
    add i,ax
 
    mov ax, i
 
    ret
simpleproc endp
 
;--------------------------
;передача по ссылке
 
simpleproc1 proc i:word
 
    mov ebx, 3
    pop eax
    add eax, ebx
    
 
    ;movsx i,eax
 
    ;mov eax, offset i
 
 
    ret
simpleproc1 endp
 
;--------------------------
;передача через стек
 
simpleproc2 proc i:dword
push bp                 ;Сохранение регистра BP
mov bp,sp               ;BP=SP
push dx
 
mov ax, [bp+4]
add ax, [bp+6]
 
mov i,ax
 
push i
 
pop bp
 
simpleproc2 endp
 
;--------------------------
 
start:
 
mov ax,1
call simpleproc
 
mov y,ax
 
movsx eax, y
 
mov ebx, 20
 
 
invoke  crt_printf, ADDR tpt, eax
 
mov eax, offset _x
 
call simpleproc1
mov ebx, eax
 
invoke  crt_printf, ADDR tpt, eax
 
push _a
push _b
call simpleproc2
 
mov eax, [bp+8]
invoke  crt_printf, ADDR tpt, eax
 
invoke  crt__getch
invoke  crt_exit,0
 
end start
Не работают у меня передача по ссылке и через стек. Ну и подскажите, правильно ли я передаю по значению. На одном ресурсе находил одну теорию, а на другом совершенно другую.

Заранее благодарствую!

Вернуться к обсуждению:
Передача параметров в процедуру
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 14:36
Готовые ответы и решения:

Передача параметров в процедуру
Пока не нашел функцию ltoa, пытался добавить подсчет количества записанных байтов. Добавил параметр...

Передача параметров
Нужно написать COM программу,чтобы при вводе с командной строки,она считывала параметр(имя файла) и...

Передача параметров блоком
Как передать в процедуру блоком 2й массив? (в данном случае массив x1). ведь после передачи блока ...

Передача параметров функциям
Доброго времени суток! Уважаемые форумчане, подскажите, почему вот так можно: .data a dd...

передача параметров dll fasm
Если у кого есть пример дайте плз. Проблема такая: как передать параметры в длл на фасме и из нее в...

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