Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11647
Последний выпуск: 19.06.2015

Assembler

51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013


Приветствую всех! Как это исправить?
см. в картинке
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
Лол. Скопируй текст ошибки полностью сюда вставь, а то самое интересное не видно. Ну а вообще чтото с настройками компилятора или проекта - у меня с masm32 всё ок компилится.
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
Используй шаблонный asm файл
Код:
.386
.model flat, stdcall
option casemap:none

;include modules=======================================
;include %Paste MASM Directory here!%includewindows.inc
;include %Paste MASM Directory here!%includeuser32.inc
;include %Paste MASM Directory here!%includekernel32.inc
;======================================================

;librarys==============================================
;includelib {Paste MASM Directory here!}libuser32.lib
;includelib {Paste MASM Directory here!}libkernel32.lib
;======================================================

;segments =============================================

;place your data here
.data

;place your executable code here
.code

start: ;- entry point
mov eax,0321fh
end start
;======================================================
обрати внимание : .model flat,stdcall
и всегда сохраняй файл перед запуском через меню (File->Save) бо Ctrl+S не работает
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
0 error LNK2001: unresolved external symbol _WinMainCRTStartup -1
1 fatal error LNK1120: 1 unresolved externals -1
спасибо!
arjj буду признателен и благодарен если поможешь
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
Покажи опции компилятора (Project->Project Options) и настройки асм (Options->System Options).
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
Вообще эта ошибка означает, что не нашел точку входа (если удалить start то выдаст её)
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
arrjj спасибо огромное
скинь сюда свой номер кошелька BagiLR@mail.ru
ура, спасибо! Программа работает теперь
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
где здесь нажать на кнопку "РЕШЕНО"???
:)
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013


arjj посмотри плиз что делать?
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
Либо у меня с системой что-то?
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
int под виндой просто так не вызовешь - если хочешь в консоль чтото писать ставь subsystem:Console в опциях проекта, подключи макро из masm32macrosmacros.asm и используй макросы print и input

либо поставь себе DOSbox и в нём тестируй программы скомпилированные

успехов :)
246
21 сентября 2014 года
arrjj
1.7K / / 26.01.2011
Всё дело в том что int 21h - это системные прерывания, использовавшиеся в DOS для работы с консолью. Уже давно никто досом не пользуется, но в универах всем лабы дают устаревшие ппц
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
спасибо, если что напишу
51K
21 сентября 2014 года
BagiLR
110 / / 29.06.2013
программа то работает, компилятор тем более ошибок не выдаёт, просто ошибку ось выдаёт, а так всё работает.
294
21 сентября 2014 года
sadovoya
757 / / 19.11.2005
Для Dos - masm 6, для Windows - Masm32 SDK.
51K
22 сентября 2014 года
BagiLR
110 / / 29.06.2013
Цитата: arrjj
Всё дело в том что int 21h - это системные прерывания, использовавшиеся в DOS для работы с консолью. Уже давно никто досом не пользуется, но в универах всем лабы дают устаревшие ппц



arrjj, скомпилировать получилось и в маsm32 и GSS VAssembler
но ошибку выдаёт при запуске программы. Ты помоему говорил что макрос если подключить то ошибка может устраниться, как подключить макрос.асм? помоги плиз!

51K
22 сентября 2014 года
BagiLR
110 / / 29.06.2013
в GSS VAssembler
51K
22 сентября 2014 года
BagiLR
110 / / 29.06.2013
Цитата: arrjj
int под виндой просто так не вызовешь - если хочешь в консоль чтото писать ставь subsystem:Console в опциях проекта, подключи макро из masm32macrosmacros.asm и используй макросы print и input

либо поставь себе DOSbox и в нём тестируй программы скомпилированные

успехов :)



через subsystem компилировал

246
22 сентября 2014 года
arrjj
1.7K / / 26.01.2011
:|
ошибку выдает т.к. пытаешься вызвать int'ы, которые под виндой не работают.
int 21h ah=9 - вывод строки в DOS
для вывода строки можно использовать макрос output из комлекта макросов masm32

вообще не очень понятно что ты хочешь этим кодом сделать?
294
23 сентября 2014 года
sadovoya
757 / / 19.11.2005
Цитата:
Либо у меня с системой что-то?
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!



Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).

Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.

Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.

294
23 сентября 2014 года
sadovoya
757 / / 19.11.2005
Код:
; COM программа для DOS hello2.asm.
; Компилировать в старом masm командой ml /AT hello2.asm
;-------------------------------------------------------
CSEG Segment
org 100h
Begin:
 mov ah,9
 mov dx,offset Message
 int 21h
 int 20h
Message db 'Some Text for console output$'
CSEG ends
end Begin
51K
23 сентября 2014 года
BagiLR
110 / / 29.06.2013
Цитата: sadovoya
Цитата:
Либо у меня с системой что-то?
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!



Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).

Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.

Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.



Спасибо!

51K
23 сентября 2014 года
BagiLR
110 / / 29.06.2013
Цитата: BagiLR
Цитата: sadovoya
Цитата:
Либо у меня с системой что-то?
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!



Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).

Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.

Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.



Спасибо!



Где взять старый masm теперь? устал уже

294
23 сентября 2014 года
sadovoya
757 / / 19.11.2005
Здесь есть ссылка (в самом верху), на масм в комплекте с CodeView

А вот аналогичная для MASM32 программа (консольная для Windows). Еще название окна добавляет и для выхода нажатия клавиши ожидает.


Код:
comment * --------------------------------------------------------------

                    Консольная программа для Windows console.asm

Компилировать в новом Masm (MASM32) командами:
ml /c /coff console.asm  
polink /Subsystem:Console console.obj
                     
----------------------------------------------------------------------- *

.386                              
.model flat, stdcall                    
option casemap :none                  

include masm32\include\windows.inc       ; main windows include file
include masm32\include\masm32.inc        ; masm32 library include

include masm32\include\kernel32.inc
include masm32\include\msvcrt.inc        ; printf и др.

include masm32\macros\macros.asm         ; masm32 macro file
includelib masm32\lib\masm32.lib         ; masm32 static library

includelib masm32\lib\kernel32.lib
includelib masm32\lib\msvcrt.lib

   
     
.code

start:

    call main
   
    inkey "Press any key to exit this program...",13,10

    exit

main proc
   
    SetConsoleCaption "Program Console"

    printf("Some string for output\n\n")
       
    ret
   
main endp


end start
294
23 сентября 2014 года
sadovoya
757 / / 19.11.2005
Скачается с именем masm.exe, но на самом деле это архив rar. Переименуйте в masm.rar и распакуйте.
51K
24 сентября 2014 года
BagiLR
110 / / 29.06.2013
Цитата: sadovoya
Скачается с именем masm.exe, но на самом деле это архив rar. Переименуйте в masm.rar и распакуйте.



Спасибо sadovoya
то что нужно как раз

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог