Assembler
.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
;======================================================
и всегда сохраняй файл перед запуском через меню (File->Save) бо Ctrl+S не работает
1 fatal error LNK1120: 1 unresolved externals -1
спасибо!
arjj буду признателен и благодарен если поможешь
скинь сюда свой номер кошелька BagiLR@mail.ru
ура, спасибо! Программа работает теперь
:)
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!
либо поставь себе DOSbox и в нём тестируй программы скомпилированные
успехов :)
arrjj, скомпилировать получилось и в маsm32 и GSS VAssembler
но ошибку выдаёт при запуске программы. Ты помоему говорил что макрос если подключить то ошибка может устраниться, как подключить макрос.асм? помоги плиз!
либо поставь себе DOSbox и в нём тестируй программы скомпилированные
успехов :)
через subsystem компилировал
ошибку выдает т.к. пытаешься вызвать int'ы, которые под виндой не работают.
int 21h ah=9 - вывод строки в DOS
для вывода строки можно использовать макрос output из комлекта макросов masm32
вообще не очень понятно что ты хочешь этим кодом сделать?
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!
Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).
Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.
Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.
; Компилировать в старом 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
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!
Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).
Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.
Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.
Спасибо!
Либо GSS Visual Assemler не настроен!
Мне бы чтобы прога просто запускалась через дос окно и закрывалась и всё!!!
конечно же хотелось бы добавить и мессагу в дос окошко!
Вы вероятно не понимаете разницу между консольными exe-программами для Windows и exe программами для дос , которые тоже могут запускаться в "дос" окне Windows. На самом деле "дос"-окно в винде запускает и досовские программы (эмуляция) и консольные виндовые. Одни 16-битные, другие 32 (либо даже 64). Формат тоже у программ разный, хотя расширение exe и у тех и у других. Компилируйте досовские программы старым масмом, виндовые - новым. Уже об этом я писал. Старый масм int-ы (прерывания) понимает, виндовое "дос" окно их запустит (если только не биос-прерывания использовать).
Кроме того у вас там org 100 -- значит вообще com программа для дос. Компилируйте старым масмом, еще и для модели tiny ключ ставьте.
Для использования прерываний биос надо эмулятор доса или виртуальную машину с досом ставить. Тут уже "дос"-окно windows бессильно.
Спасибо!
Где взять старый masm теперь? устал уже
А вот аналогичная для MASM32 программа (консольная для Windows). Еще название окна добавляет и для выхода нажатия клавиши ожидает.
Консольная программа для 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
Спасибо sadovoya
то что нужно как раз