Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Та достаточно не давать готовых решений халявщикам, а подсказки/материал для размышлений/сырые заготовки. Понимающему достаточно, а халявщику не подойдёт. Аминь.

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 10:35 03-10-2011
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может ветку под x64 отдельно выделить?

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 14:47 05-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а что, тут кто то озадачился проблемой х64? как было 100 лет назад на тасме, так и пишут там же,  под ДОС... а те кто пишет под х64 на асме - сюда не ходят...

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 15:32 05-10-2011
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а те кто пишет под х64 на асме - сюда не ходят...

И куда они ходят?

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 14:00 06-10-2011
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никуда они не ходят. Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 20:54 06-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Никуда они не ходят. Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы

 
Ну почему же. При любом уровне сообразительности и профессионализма всегда есть вопросы для обсуждения )

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 10:33 13-10-2011
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ItsJustMe

Цитата:
Они сами по себе достаточно сообразительны, чтобы ходить и задавать глупые вопросы

Например, какие?

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 21:22 15-10-2011
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Откуда ж я знаю? Тут пока ни один не появлялся, поэтому и никаких вопросов задано не было. Отсюда, собственно, и мой вывод
Вот когда появится кто-то и вопрос задаст (причем, глупый), вот тогда я и смогу ответить на ваш вопрос.

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 19:53 16-10-2011
G36

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, в 32-битном TASM использовать прерывания нельзя, верно? Как же тогда вводить и выводить информацию? Неужели только через WinAPI? И еще, следующую программу

Код:
.486
.model  flat
 
includelib ..\Lib\imp32i.lib
 
extrn ExitProcess:PROC
extrn MessageBoxA:PROC
 
.data    
 
Ttl    db "First ASSEMBLER program",0h
Msg    db 'Hello, World',0h
 
.code
 
start:
    push 0h
    push offset Msg
    push offset Ttl
    push 0h    
    call MessageBoxA
    push 0h    
    call ExitProcess
end start

 
компилирую как
tasm32 /zi /m3 /ml prog.asm
tlink32 /v /r /Tpe /aa prog.obj
 
Но при ее отладке через td32 вижу обычное окно CPU, а хотелось бы видеть исходный код и по нему уже двигаться.

Всего записей: 37 | Зарегистр. 15-08-2008 | Отправлено: 21:36 17-10-2011 | Исправлено: G36, 01:11 18-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G36
Вы консольное приложение, или оконное хотите?
На _wasm.ru не заходили ещё?

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 18:28 18-10-2011
G36

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rrromano
Консольное, на wasmе был не раз, проблему свою гуглил целый вечер, но Turbo Debugger упорно не видит символьную таблицу, при компиляции с вышеуказанными ключами никаких tds-файлов не создается, а должны бы.
Tasm32 версии 5.3, TD32 версии 5.5.

Всего записей: 37 | Зарегистр. 15-08-2008 | Отправлено: 19:25 18-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G36
 

Код:
.386P
; плоская модель
.MODEL FLAT, stdcall
 
; константы
STD_OUTPUT_HANDLE equ -11
 
; прототипы внешних процедур
EXTERN GetStdHandle:NEAR
EXTERN WriteConsoleA:NEAR
EXTERN ExitProcess:NEAR  
 
; директивы компоновщику для подключения библиотек
includelib c:\tasm32\lib\import32.lib
 
;------------------------------------------------------------
; сегмент данных  
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
; строка в DOS-овской кодировке
 STR1 DB "Консольное приложение",0
 LENS DD ?
; количество выведенных символов
 RES DD ?
_DATA ENDS
 
; сегмент кода  
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
START:  
; получить HANDLE вывода
 PUSH STD_OUTPUT_HANDLE
 CALL GetStdHandle  
; длина строки
 PUSH OFFSET STR1
 CALL LENSTR
; вывести строку
 PUSH OFFSET RES ; резерв
 PUSH OFFSET LENS ; выведено символов
 PUSH EBX ; длина строки
 PUSH OFFSET STR1 ; адрес строки
 PUSH EAX ; HANDLE вывода
 CALL WriteConsoleA
 PUSH 0
 CALL ExitProcess  
; строка - [EBP+08H]  
; длина в EBX
 
LENSTR PROC
 PUSH EBP
 MOV EBP,ESP
 PUSH EAX
; ----------
 CLD
 MOV EDI, DWORD PTR [EBP+08H]
 MOV EBX,EDI
 MOV ECX,100 ; ограничить длину строки
 XOR AL,AL
 REPNE SCASB ; найти символ 0
 SUB EDI, EBX ; длина строки, включая 0  
 MOV EBX,EDI
 DEC EBX
; ----------
 POP EAX
 POP EBP
 RET 4
LENSTR ENDP
_TEXT ENDS
END START

 
TASM32 /ml cons1.asm
tlink32 /ap cons1.obj
 
Отсюда: _http://onbooks.ucoz.ru/index/glava_2_konsolnye_prilozhenija_1/0-741

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 10:39 19-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
G36
код
батник

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 12:43 19-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MERCURY127
Тоже вариант, но для новичка сложнее в понимании, как мне кажется ).

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 13:01 19-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще можно было бы lstrlen задействовать но мне тоже показалось, что будет перебор. Однако мне кажется, он не совсем новичок, а в винде вывод в консоль не сложнее, чем в дос. Еще с версии 2.0 это там есть, вроде. И х64 тоже умеет это. А еще в масме можно msvcrt.lib подключить.

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 13:42 19-10-2011
G36

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rrromano
По-прежнему переработанные машинные инструкции вместо исходного кода.
MERCURY127
Отлично работает, спасибо!
Опытным путем выяснилось, что в коде должен быть объявлен массив buffer размером хотя бы 512 байт, но не совсем понятно, как программа будет его использовать (вместо стека что ли?).

Всего записей: 37 | Зарегистр. 15-08-2008 | Отправлено: 18:46 19-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит, все таки новичок буфер этот должен быть минимум 1024 или по некоторым данным даже не менее 2050 байт. В него пишет вывод функция вспринтф, использованная для печати числа - аналог принтф в си. Если форматированный вывод не нужен - не используйте ее, и буфер не нужен будет.
 
Добавлено:
И вообще, если уж начали писать для винды - не занимайтесь телепатией, а читайте МСДН/ПСДК/ВДК/ВРК документацию...

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 21:34 19-10-2011
G36

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если форматированный вывод не нужен - не используйте ее, и буфер не нужен будет

Да, я видел, что один из параметров функции - буфер, но мне сначала хотелось этого:

И если теперь из исходника убрать буфер, то получается:

Всего записей: 37 | Зарегистр. 15-08-2008 | Отправлено: 22:47 19-10-2011 | Исправлено: G36, 22:49 19-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а тасм разве умеет .686 и .ммх???

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 12:49 20-10-2011
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а, таки умеет ... 5.3 уже есть ну так в чем проблема то? все как надо:
картинка
 
Добавлено:
а... если буфер убрать... хмм, тогда да, не распознает как дебагинфо... думаю что глюк отладчика странно ждать чудес от трупа...

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 15:11 20-10-2011 | Исправлено: MERCURY127, 15:13 20-10-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru