|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2008, 15:03 | #1 |
Регистрация: 28.09.2008
Сообщений: 8
|
ассемблер и АМД
Здравствуйте! На многих форумах, во многих статьях читал и видел, что по большому счёту нет разницы, для какого процессора пишется программа на ассемблере - для Интела или для АМД.. АМД, пишется там, т.н. Интел-совместимый и кроме специфических функций различий нет..
Я только начал изучение ассемблера. Основная книжка - учебник Зубкова(2000), компилятор - ТАСМ. Со всем разобрался сам, нашёл и настроил. Написал первую программу - работает.. ..но не так.. вместо однократного "Hello World!" пишет "Жеllo o=!World" несколько раз подряд в перемешку с какой-то ещё ересью.. Досадно. У меня АМД 3000+. действительно ли это из-за процессора, или могут быть иные причины некорректной работы программы? Пожалуйста, помогите разобраться.. Спасибо |
28.09.2008, 15:43 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я лично уверен на 99.99 %, что это НЕ из-за процессора.
Лучше приведите листинг программы... |
28.09.2008, 16:00 | #3 |
Регистрация: 28.09.2008
Сообщений: 8
|
да, вот листинг.. конечно, я сам ничего не могу сказать по поводу его правильности, однако он из учебника, о котором многие отзывались вполне положительно.. итак:
.model tiny .code org 100h start: mov ah, 9 mov dx, offset message int 21h ret message db "Hello World!", 0Dh, 0Ah, '$' end start мне уже самому кажется, что программка очень простая, однако сопоставить результат с кодом у меня ну никак не получается.. |
28.09.2008, 19:04 | #4 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Всё должно работать.
Tasm file.asm Tlink /t file.obj
пыщь
|
28.09.2008, 19:57 | #5 |
Регистрация: 28.09.2008
Сообщений: 8
|
JTG,
линковал я не так.. может, по неопытности, но зачем /t после tlink? честно говоря, я компилирую посредством bat - файла, в нём пишу: ..\bin\tasm file.asm ..\bin\tlink file.obj запускаю его, получается exe-шник. работает. но выдаёт то, что я и писал: строчек шесть искажённого "Hello World!" плюс несколько непонятных символов вразброс. Может, что-то с системой? или суть именно в /t ? Хочется разобраться всё-таки.. Может, нужно проследить, как программа работает по шагам, но до этого я тоже пока не дошёл. Есть такая вещь, как TD - turbo debugger, как я понял, но как ей пользоваться - ещё не уяснил. Подскажите, кто чем, как говорится Спасибо |
28.09.2008, 20:09 | #6 |
Регистрация: 28.09.2008
Сообщений: 8
|
ага, господа.. добавил в тот же bat - ничек ту самую /t.. сделался ещё один файлик, обозначающийся не просто, как приложение(как до того), а как приложение MS-DOS.. запустил - окошечко открылось и закрылось.. немного анализа и самокопания - убрал из текста программы строчку
ret .. вуаля! окошечко открывается, пишется красивое и правильное "Hello World!" .. но после несколько слов: Ошибка при выделении памяти Не удаётся загрузить COMMAND.COM, система остановлена.. Окошечко не исчезает, всё видно, но, опять-таки, видимо, что-то не так.. Прокомментируйте, пожалуйста, ситуацию юному натуралисту -что значит /t ? -как сделать так, чтобы окошечко не закрывалось(чтобы можно было видеть результат выполнения), но и не было ошибки -ну и в общих словах: что вообще происходит? ценю ваше участие |
28.09.2008, 20:41 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) вы в исходнике используете модель памяти программы типа COM (читайте в вашей книжке отличия программ *.COM от программ *.EXE)!
2) ключик /T как раз и создаёт файлы формата *.COM 3) работать надо строго в командной строке Пуск- Программы - Стандартные - Командная строка (ну, или, хотя бы их файлового менеджера (типа FAR) 4) то, что вы убрали RET - вы же выход из программ и возрат в MS DOS убрали. вот и выходит ошибка!!! у всех нормальных программ командной строки есть парамете /? т.е. запускаете TLINK /? и читаете, что означают ключи и параметры! Последний раз редактировалось rpy3uH; 29.09.2008 в 10:56. |
28.09.2008, 20:59 | #8 |
Регистрация: 28.09.2008
Сообщений: 8
|
понятно-понятно..
просто, я использую bat, поскольку мне так удобнее: получившиеся файлы располагаются в той же директории, что и bat-ник.. можно прописать путь для выходных файлов, на сколько я понимаю, но мне этого сделать не удалось(не нашёл, где..) получилось только прописать путь, который позволяет писать в командной строке просто tasm и tlink без указания путей к ним. скажите, почему вы так категоричны в использовании командной строки? и оставшийся вопрос: да, я понял, что убрав ret, я убрал существенную часть кода, но на данном этапе это был единственный выход.. как же сделать так, чтобы программа не закрывалась сразу, чтобы можно было увидеть результат её работы? про ключик /t нигде ничего не видел, так что информация очень полезная, спасибо. кстати сказать, когда запускаю помощь, TLINK /? окошко открывается тоже только на мгновение и сразу закрывается.. видимо, я уже не понимаю какой-то принципиальной вещи, не могли бы вы и это пояснить? Последний раз редактировалось rpy3uH; 29.09.2008 в 10:57. |
28.09.2008, 21:30 | #9 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
TLINK - консольное WIN32 приложение, поэтому вам и советуют запускать его из консольного файлового менеджера (типа FAR), чтобы TLINK /? при своём выполнении унаследовал консоль файлового менеджера и вывел результат именно туда и вы бы смогли его увидеть.
Ну или можно так написать в командной строке C:\TASM\BIN\TLINK /? > C:\TASM\BIN\help.txt и смотрите файл help.txt, справка будет там.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
28.09.2008, 22:02 | #10 |
Регистрация: 28.09.2008
Сообщений: 8
|
отлично, я всё понял, всё прочитал, буду двигаться дальше. Спасибо всем, кто отписывался, вы мне очень помогли. Надеюсь, всё, что здесь написано, будет полезно не только мне. Удачи
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер | farxad | Помощь студентам | 6 | 11.09.2016 14:19 |
Ассемблер для ARM | Pavlik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 11.04.2008 15:30 |
Ассемблер | InTest | Фриланс | 1 | 12.12.2007 02:05 |
USB 2.0. ассемблер | wiskas | Помощь студентам | 1 | 22.02.2007 01:30 |