Поиск:

Ответ в темуСоздание новой темы Создание опроса
> структура проги для новичка :), Аналогично названию 
:(
    Опции темы
Xach
Дата 8.10.2004, 11:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Друзья мои! Хотелось бы знать как выглядят структуры программ для masm or tasm
т.к. assume правильно не работает, а используя

mov ax,data
mov ds,ax

чувствуешь себя лохом...

Хотелось бы также узнать и про model, только пожалуйста
без всяких объяснений (оставьте их авторам книжек), только работающий исходник
пустой проги...

exclamation.gif exclamation.gif exclamation.gif


sample.gif

  Вверх
Akina
Дата 8.10.2004, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



дурь какая... assume вообще в код не компилится - он для сообщения компилеру, чтобы тот правильный segment override делал...
Добавлено @ 12:28
Цитата
только работающий исходник пустой проги...

Код
.8086
.code
ret
.stack 100h



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest
Дата 8.10.2004, 12:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Согласен, и всё-таки структурку бы

sample.gif
  Вверх
Guest
Дата 8.10.2004, 12:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В смысле с model
  Вверх
Akina
Дата 8.10.2004, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Код
.model huge
.8086
.code
ret
.stack 100h



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
oleg1973
Дата 8.10.2004, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



Код

org 0x100
ret

получим СОМ где cs=ds=es если че не подзабыл я


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Xach
Дата 11.10.2004, 18:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Друзья мои! первый и второй приведённые примеры не работают, а даже если б и работали то это не то что мне нужно, ибо мне бы хотелось получить EXE, а не COM в связи с этим смотри вопрос!
  Вверх
Akina
Дата 11.10.2004, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата
первый и второй приведённые примеры не работают

значит собирал через одно место. работать должны - при сборке хоть в СОМ, хоть в ЕХЕ (не РЕ).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Xach
Дата 11.10.2004, 21:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Возможно то место ближе чем казалось, но тогда прошу написать мне полный вид командной строки, включая ассемблирование и линковку(для masm или tasm)!
  Вверх
Akina
Дата 12.10.2004, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Ой ты нудный какой...

[Simplest.ASM]
Код
CSEG SEGMENT BYTE PUBLIC
ASSUME CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
ORG 100H

START: RET

CSEG ENDS
END START

tasm simplest
tlink /t simplest


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Xach
Дата 12.10.2004, 19:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











COM мы и без вас умеем делать, а вот за EXE большое спасибо скажем. И не надо мне гнать что у COM и у EXE одинаковая структура, я и так знаю что это не так и .
По-этому, если я увижу ORG 100H то сильно обижусь
stena.gif
  Вверх
Chingachguk
Дата 12.10.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 3
Всего: 18



Код
; Example of EXE-Program
.286
StackSize equ 128
DataSeg Segment Para 'data'
       MyMessage db 'Hello from EXE !!!',13,10,'$'
       ErrorMess db 'Error !',13,10,'$'
       MemInfo   db 'Free mem:0000h',13,10,'$'
       TabHex    db '0123456789abcdef'
DataSeg Ends
CodeSeg segment Para 'code'
       assume cs:CodeSeg,ds:DataSeg,ss:MyStack
My_Pr proc
Main:
       mov  ax,DataSeg
       mov  ds,ax
       mov  dx,offset MyMessage
       mov  ah,09h
       int  21h

@@Wait: in   al,60h
       cmp  al,1
       jnz  @@Wait

       mov  word ptr es:[0],020cdh
       push es
       push 0
       retf

       call far ptr Stop
       call far ptr Far_Pr
; Check for size of Memory
       mov  ax,DataSeg
       mov  ds,ax
;        mov  ax,seg MyStack
;        mov  es,ax
       call ShowMem           ; Show free mem size
       mov  ah,48h
       mov  bx,0100h
       int  21h               ; Try to allocate 1000h bytes
       jnc  @NoError
       call @Error            ; Error message
@NoError:
      ; Free memory
       mov  bx,(StackSize shr 4) + 1
       mov  ah,4ah
       int  21h               ; Set new program size
       jnc  @MemFree
       call @Error
       jmp  @GoDos
@MemFree:
       call ShowMem           ; Show free mem size
      ; Try again to allocate 1000h bytes
       mov  ah,48h
       mov  bx,0100h
       int  21h               ; Try to allocate 1000h bytes attempt 2
       jnc  @NoErrorFinal
       call @Error            ; Error message
@NoErrorFinal:
       call ShowMem           ; Show free mem size
@GoDos: mov  ax,4c00h
       int  21h
My_Pr endp
ShowMem proc near
       mov  ah,48h
       mov  bx,0ffffh
       int  21h               ; Try to allocate ffffh bytes
      ; Error !
       mov  ax,bx             ; Free mem size
       mov  di,offset MemInfo + 9
       call HexChar
       mov  dx,offset MemInfo
       call Message
       retn
ShowMem endp
@Error proc near
       mov  dx,offset ErrorMess
       call Message
       retn
@Error endp
Message proc near
       mov  ah,09h
int  21h
retn
Message endp
HexChar proc near
       pusha
       push es
       push ds
       pop  es
       mov  cx,4
       mov  bx,offset TabHex
       cld
@GetHex:rol  ax,4
       push ax
       and  al,0fh
       xlat
       stosb
       pop  ax
       loop @GetHex
       pop  es
       popa
       retn
HexChar endp
CodeSeg Ends
DataSec Segment Para 'data'
       SecMess   db 'Called from Sec Segment !!!',13,10,'$'
DataSec Ends
SecSeg  segment Para 'code'
       assume cs:SecSeg,ds:DataSec,ss:MyStack
Far_Pr  proc far
       push ds
       mov  ax,DataSec
       mov  ds,ax
       mov  dx,offset SecMess
       mov  ah,09h
       int  21h
       call far ptr Stop
       pop  ds
       ret
Far_Pr  endp
SecSeg Ends
ThrSeg  segment Para 'code'
       assume cs:ThrSeg,ds:ThrSeg,ss:MyStack
Stop    proc far
       pusha
       xor  ah,ah
       int  16h
       popa
       ret
Stop    endp
ThrSeg Ends
MyStack Segment Para stack 'stack'
       db StackSize dup(?)
MyStack Ends
 End  Main



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
oleg1973
Дата 12.10.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 2
Всего: 34



Код
format MZ

stack 1000
heap 1000

use32 segment .code
start:
       ret

use16 segment .data
       ret                                    


компилить FASM


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
xach
Дата 22.10.2004, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 22.10.2004
Где: СПб

Репутация: нет
Всего: нет



Друзья мои! Большое спасибо за последний и все остальные советы, т.к. моя цель
достигнута!!!

:yasno

- - --==End of Theme==-- - -
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0794 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.