
24.01.2008, 01:11
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
С нами:
10182506
Репутация:
1393
|
|
Пробуй вместо offset, addr
|
|
|

24.01.2008, 01:27
|
|
Members of Antichat - Level 5
Регистрация: 28.05.2007
Сообщений: 729
С нами:
9976706
Репутация:
1934
|
|
или
lea dx,message вместо mov dx,offset message
|
|
|

24.01.2008, 01:54
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами:
10531106
Репутация:
1338
|
|
Непонятно почему люди начинают с win16 )))
|
|
|

24.01.2008, 01:57
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами:
11099536
Репутация:
518
|
|
моделька досовская.... в принцыпе можно было не заморачиваться
а заменить mov на lea и грузить реальный адрес а не смещение.
|
|
|

05.02.2008, 18:43
|
|
Познающий
Регистрация: 20.12.2007
Сообщений: 36
С нами:
9679897
Репутация:
20
|
|
хочу написать прогу которая выводит текущий ип в плане освоения диалоговых окон.
есть примерно такого вида наработка вызова модального диалогового окна. она находиться в конце, чтобы не мусорить вопрос. вообщем проблема в том что я не могу заставить его работать - оно просто не отображается. те происходит вызов функции и возвращаемое значение равно -1, что не есть гуд.
рассуждения, пожалуй, писать не буду, а то уже наученный горьким опытом знаю что там будет бред.
вообщем они самые наработки.
жаль что приатачить нельзя, но думаю в ресурсах ошибки быть не должно, так что их не выписываю.
ну и теперь: как это заставить работать?
Код:
.386
.model flat,stdcall
option casemap:none
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
DlgName db "MyDialog",0
AppName db "First",0
.data?
hInstance HINSTANCE ?
.const
MyDialog equ 101
IDC_IPADDRESS1 equ 1000
IDM_EXIT equ 32003
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL
invoke ExitProcess,eax
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_INITDIALOG
invoke GetDlgItem, hWnd,IDC_IPADDRESS1
invoke SetFocus,eax
.ELSEIF uMsg==WM_CLOSE
invoke SendMessage,hWnd,WM_COMMAND,IDM_EXIT,0
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start
|
|
|

05.02.2008, 19:21
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами:
10531106
Репутация:
1338
|
|
TruPAC При вызове функции
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL
DlgName - не должен быть DlgName db "MyDialog",0 Это индетификатор описания окна, который по идеи храниться в ресурсе, также как и IDC_IPADDRESS1...
По идеи у тебя уже обьявлен индетификатор окна
.const
MyDialog equ 101
IDC_IPADDRESS1 equ 1000
IDM_EXIT equ 32003
Русурсы ты не выложил, поэтому можно предпологать, что с ними все ок! Поэтому есть вариант попробывать так...
invoke DialogBoxParam, hInstance, MyDialog ,NULL, addr DlgProc, NULL
Окно должно создасться с условием если описание окна в ресурсах соответствует спецификациям 
|
|
|

06.02.2008, 11:32
|
|
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами:
9980798
Репутация:
435
|
|
маленькие проблемки
Приветики, у меня есть вопросик, но сначала обрисую ситуацию.
Сидела я как то вечером перед монитором и решила написать свою маленькую ось, дабы закрепить азы асемблера. А сама блондинка блондинкой в этом. Взяла копы книжек в королевстве дежавю и замке пдф. Сходила к старцу васму. Послала гонцов в гугль. В итоге написала загрузчика (конечно же на дискетку((((). Написала ядро для нее. Теперь вопрос (простите Выпросы
у меня с загрузчика на ядро управление передаеться :
да кстати ось работает в текстовом режиме 80х25
mov ah, 00h
mov al, 03h
int 10h
собственно вопрос вот в чем:
когда я ввожу команду, она идет на выполнение, вот пример:
chelp db "help", 0
chelp_tail:
......
help_msg db "тут приветствие", 0Dh,0Ah,0
......
......
lea si, command_buffer
mov cx, chelp_tail - offset chelp ; size of ['help',0] string.
lea di, chelp
repe cmpsb
je help_command
......
......
; +++++ 'help' command ++++++
help_command:
; scroll text area 11 lines up:
mov al, 11
call scroll_t_area
; set cursor position 11 lines
; above prompt line:
mov ax, 40h
mov es, ax
mov al, es:[84h]
sub al, 11
gotoxy 0, al
lea si, help_msg
call print_string
mov al, 1
call scroll_t_area
jmp processed
Как сделать так чтобы при вводе команды, допустим "tasm" у меня запускался внешний файл "exe" or "com" любой. То есть независимо от адресного пространства?
Я не знаю как назвать это, ну то есть чтобы можно было осуществить выход за пределы ядра, как бы мультизадачность.
|
|
|

06.02.2008, 17:19
|
|
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,367
С нами:
11291486
Репутация:
2175
|
|
это не ОС никакая...
по4ему под 16разрядн. пишем? проще под винь и invoke ShellExecute
|
|
|

07.02.2008, 00:20
|
|
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами:
9980798
Репутация:
435
|
|
по4ему под 16разрядн. пишем? проще под винь и invoke ShellExecute
))) блин а я то дура думала, есив я загружаюсь с дискетки, меня приветствует загрузчик, потом появляеться приветствие ОС и в итоге я могу выполнять некоторые команды - это однозадачная ос, а оказываеться нет, да при том она и 16 разрядная? какая досада((( не гони. Есив это написано и откомпиленно не на тасме и не на масме то это не значит что это 16 разрядный асемблер.
вопрос был другой как с ядра обращаться к посторонним файлам.
|
|
|

07.02.2008, 00:34
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами:
11099536
Репутация:
518
|
|
А Dos и есть и был однозадачный. Там и ядра то не было.... и у тебя не будет! Есть БИОС таблица прерываний.....часть БИОСА часть под Dos заточена....там все есть,что тебе нужно! А грузится все энто бизобразие в единое адресное пространство 640Килобайт 8)).. соответственно расслабься грузи программу в память определяй точку входа и передавай управление.
Или "вытесняющая многозадачность"мастдая вьелась в моск?
А вообще мадам.... вы похоже идете в сторону MBR вируса... дык зайдите на lab29a... возьмите лучший образец и "думайте" ....там то управление передается на оригинальный загрузчик.
Последний раз редактировалось Delimiter; 07.02.2008 в 00:46..
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
|
|
|
|