Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Neo54213
0 / 0 / 0
Регистрация: 19.06.2013
Сообщений: 34
1

Программа компилируется, но не работает (MASM32)

12.01.2015, 12:33. Просмотров 711. Ответов 4
Метки нет (Все метки)

Всем здрасте. Имею WinXP SP3 32-bit (дистрибутив MSDN скачанный с торрентов) на компе с процом Intel Pentium 4 640 и в софтвэрном плане MASM32 v11. Код заведомо рабочий якобы(взял из примера к лабораторной работе).
Кликните здесь для просмотра всего текста
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
.586                                            ;    Использование набора команд 
                                                ;   i80586
.MODEL flat, stdcall                            ;    Модель памяти и тип 
                                                ;   передачи параметров
OPTION CASEMAP:NONE                             ;    Чувствительность 
                                                ;   идентификаторов к регистру
  include \masm32\macros\macros.asm             ;    Подключение описаний 
                                                ;   макросов
  include \masm32\include\kernel32.inc          ;    Подключение описаний 
                                                ;   библ. п/п
  include \masm32\include\masm32.inc
  include \masm32\include\user32.inc
  include \masm32\include\msvcrt.inc
  includeLib \masm32\lib\kernel32.lib           ;    Подключение библиотек 
                                                ;   при компоновке
  includeLib \masm32\lib\masm32.lib
  includeLib \masm32\lib\user32.lib
  includeLib \masm32\lib\msvcrt.lib             ;    Подключаем бибилиотеку 
                                                ;   msvcrt.dll
  .DATA
    TRI DW 3
  .DATA?                                        ;    сегмент неинициализи-
                                                ;   рованных данных
  buf DB 100 DUP (?)
  Msg1 DB 100 DUP (?)
  Y DW ?
  D DW ?
  Z DW ?
  X DW ?
  V DW ?
  .STACK 4096 ; сегмент стека - 4096 байт
.CODE ; сегмент кода
Start:
 
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    ;         ВВОД ДАННЫХ С КЛАВИАТУРЫ                                                       
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
               
  invoke wsprintf,offset buf,chr$("Введите A=") ;    Занесение строки в массив
  invoke CharToOem,ADDR buf,ADDR Msg1           ;    Преобразование кодировки 
                                                ;   ANSI B OEM
  invoke StdOut,ADDR Msg1                       ;    Ввод строки приглашения
  invoke StdIn,ADDR Msg1,LengthOf Msg1          ;    Ввод строки в массив Msg1
  invoke crt_atoi,ADDR Msg1                     ;    Преобр. из строки в целое
                                                ;   число. Рез-т - в АL
  mov X,AX                                      ;    Занесение значения в 
                                                ;   память
 
 
  invoke wsprintf,offset buf,chr$("Введите J=") ;    Занесение строки в массив
  invoke CharToOem,ADDR buf,ADDR Msg1           ;    Преобразование кодировки 
                                                ;   ANSI B OEM
  invoke StdOut,ADDR Msg1                       ;    Ввод строки приглашения
  invoke StdIn,ADDR Msg1,LengthOf Msg1           ;    Ввод строки в массив Msg1
  invoke crt_atoi,ADDR Msg1                     ;    Преобр. из строки в целое
                                                ;   число. Рез-т - в АL
  mov Z,AX                                      ;    Занесение значения в 
                                                ;   память
 
 
 
  invoke wsprintf,offset buf,chr$("Введите K=") ;    Занесение строки в массив
  invoke CharToOem,ADDR buf,ADDR Msg1           ;    Преобразование кодировки 
                                                ;   ANSI B OEM
  invoke StdOut,ADDR Msg1                       ;    Ввод строки приглашения
  invoke StdIn,ADDR Msg1,LengthOf Msg1           ;    Ввод строки в массив Msg1
  invoke crt_atoi,ADDR Msg1                     ;    Преобр. из строки в целое
                                                ;   число. Рез-т - в АX
  mov D,AX
 
 
 
 
 
 
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    ;                ВЫЧИСЛЕНИЯ                                                       
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
               
    XOR EAX,EAX                                 ;    Очистка регистра
 
        MOV AX,D
        SUB AX,1
        CWD
            IDIV TRI
            MOV BX,AX
            MOV AX,Z
            ADD AX,25
            IMUL X
            SUB AX,BX
            MOV Y,AX
 
  invoke wsprintf, offset Msg1,chr$("Результат Y=%d"),EAX
  invoke CharToOem,ADDR Msg1,ADDR buf
  invoke StdOut,ADDR buf                       ;     Вызов процедуры вывода в 
                                               ;    консоль
  invoke StdIn,ADDR buf,2
 
  Invoke ExitProcess,0                         ;     Вызов процедуры завершения
END Start;                                     ;     Метка старта программы

Компилится, но не запускается.
Кликните здесь для просмотра всего текста

Отправляю знакомому - все запускается и работает. Ставлю виртуальную машину, на неё ту же ОСь, тот же масм, тот же код... Получаю уже более интересный ответ.
Кликните здесь для просмотра всего текста

Сразу скажу что во всех случаях асм файл находиться в папке с масмом, которая находиться на диске С.
Ув. знатоки! Внимание! Вопрос. Как увидеть работу программы в первом случае и почему она не компилиться во втором, при том что в первом с компоновкой и линкованием все нормально?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2015, 12:33
Ответы с готовыми решениями:

Не компилируется в masm32
Здравствуйте, уважаемые форумчане! Объясните почему данная программа не...

Книга Крупника "Самоучитель ассемблера": Ни один код не компилируется хатчевским пакетом Masm32
Кто-нибудь читал или учился по книге Крупника *Самоучитель ассемблера* ? Я...

Ошибки MASM32 - cannot open file : .\masm32\include\windows.inc
установил MASM32, прописал в патче путь, выдаёт ошибки при компиляции такого...

Программа не компилируется
привет есть код hello world c1 segment; assume cs:c1, ds:d1, ss:stk1 ...

Не компилируется программа
Вот программа, выгрузга резидента, но не компилируется. в чем ошибка не...

4
Charles Kludge
Клюг
7646 / 3161 / 383
Регистрация: 03.05.2011
Сообщений: 8,382
12.01.2015, 15:35 2
Слишком много лишнего.
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
.586                ;    Использование набора команд
                                                ;   i80586
.MODEL  flat, stdcall       ;    Модель памяти и тип
                                ;   передачи параметров
OPTION  CASEMAP:NONE        ;    Чувствительность
                                                ;   идентификаторов к регистру
    include \masm32\include\msvcrt.inc
    includeLib  \masm32\lib\msvcrt.lib;    Подключаем бибилиотеку
                                                ;   msvcrt.dll
.DATA
TRI DW  3
rslt    db  'Результат Y=%d',0Dh, 0Ah, 0
entA    db  'Введите A=',0
entJ    db  'Введите J=',0
entK    db  'Введите K=',0
tpt db  '%d',0
tps db  '%s',0
.data?
Y   DW  ?
D   DW  ?
Z   DW  ?
X   DW  ?
 
.CODE               ; сегмент кода
Start:
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    ;         ВВОД ДАННЫХ С КЛАВИАТУРЫ
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    invoke  crt_printf, ADDR tps, ADDR entA
    invoke  crt_scanf, ADDR tpt, ADDR X
    invoke  crt_printf, ADDR tps,ADDR entJ
    invoke  crt_scanf, ADDR tpt, ADDR Z
    invoke  crt_printf, ADDR tps,ADDR entK
    invoke  crt_scanf, ADDR tpt, ADDR D
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                    ;                ВЫЧИСЛЕНИЯ
                    ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    MOV AX,[D]
    SUB AX,1
    CWD
    IDIV    [TRI]
    MOV BX,AX
    MOV AX,[Z]
    ADD AX,25
    IMUL    [X]
    SUB AX,BX
    MOV [Y],AX
 
    cwd
gtfo:   invoke  crt_printf, ADDR rslt, eax
    invoke  crt__getch
    Invoke  crt_exit,0      ;     Вызов процедуры завершения
    END Start           ;                                     ;     Метка старта программы
1
Neo54213
0 / 0 / 0
Регистрация: 19.06.2013
Сообщений: 34
12.01.2015, 23:25  [ТС] 3
Да, спасибо. Код не я писал и многие операторы мне не понятны. Но не суть. А что по поводу сабжа? Как запустить программу?
0
Charles Kludge
Клюг
7646 / 3161 / 383
Регистрация: 03.05.2011
Сообщений: 8,382
13.01.2015, 00:02 4
Цитата Сообщение от Neo54213 Посмотреть сообщение
Как запустить программу?
А у меня сразу запустилось, потом только код причёсывал.
0
Neo54213
0 / 0 / 0
Регистрация: 19.06.2013
Сообщений: 34
13.01.2015, 01:19  [ТС] 5
Касается не только этой программы, а любого нормально исанного и компилируемого кода. Т.е, я не могу запусить программу даже если она нормально была написана.
0
13.01.2015, 01:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2015, 01:19

Не компилируется программа
Где ошибка? Все по книге делаю а все равно ошибки data segment para public...

Почему не компилируется программа?
.model tiny .code org 100h ; СОМ-программа start: lea dx,msg mov...

Резидентная программа - странно компилируется
Всем привет . Скачал отсюда http://shackmaster.narod.ru/tsr.htm пример...


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

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

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