![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.09.2008
Сообщений: 8
|
![]()
Здравствуйте! На многих форумах, во многих статьях читал и видел, что по большому счёту нет разницы, для какого процессора пишется программа на ассемблере - для Интела или для АМД.. АМД, пишется там, т.н. Интел-совместимый и кроме специфических функций различий нет..
Я только начал изучение ассемблера. Основная книжка - учебник Зубкова(2000), компилятор - ТАСМ. Со всем разобрался сам, нашёл и настроил. Написал первую программу - работает.. ..но не так.. вместо однократного "Hello World!" пишет "Жеllo o=!World" несколько раз подряд в перемешку с какой-то ещё ересью.. Досадно. У меня АМД 3000+. действительно ли это из-за процессора, или могут быть иные причины некорректной работы программы? Пожалуйста, помогите разобраться.. Спасибо ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я лично уверен на 99.99 %, что это НЕ из-за процессора.
Лучше приведите листинг программы... |
![]() |
![]() |
![]() |
#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 мне уже самому кажется, что программка очень простая, однако сопоставить результат с кодом у меня ну никак не получается.. |
![]() |
![]() |
![]() |
#4 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Всё должно работать.
Tasm file.asm Tlink /t file.obj
пыщь
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 28.09.2008
Сообщений: 8
|
![]()
JTG,
линковал я не так.. может, по неопытности, но зачем /t после tlink? честно говоря, я компилирую посредством bat - файла, в нём пишу: ..\bin\tasm file.asm ..\bin\tlink file.obj запускаю его, получается exe-шник. работает. но выдаёт то, что я и писал: строчек шесть искажённого "Hello World!" плюс несколько непонятных символов вразброс. Может, что-то с системой? или суть именно в /t ? Хочется разобраться всё-таки.. ![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Регистрация: 28.09.2008
Сообщений: 8
|
![]()
ага, господа.. добавил в тот же bat - ничек ту самую /t.. сделался ещё один файлик, обозначающийся не просто, как приложение(как до того), а как приложение MS-DOS.. запустил - окошечко открылось и закрылось.. немного анализа и самокопания
![]() ret .. вуаля! окошечко открывается, пишется красивое и правильное "Hello World!" .. но после несколько слов: Ошибка при выделении памяти Не удаётся загрузить COMMAND.COM, система остановлена.. Окошечко не исчезает, всё видно, но, опять-таки, видимо, что-то не так.. Прокомментируйте, пожалуйста, ситуацию юному натуралисту ![]() -что значит /t ? -как сделать так, чтобы окошечко не закрывалось(чтобы можно было видеть результат выполнения), но и не было ошибки -ну и в общих словах: что вообще происходит? ![]() ценю ваше участие ![]() |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 28.09.2008
Сообщений: 8
|
![]()
понятно-понятно..
просто, я использую bat, поскольку мне так удобнее: получившиеся файлы располагаются в той же директории, что и bat-ник.. можно прописать путь для выходных файлов, на сколько я понимаю, но мне этого сделать не удалось(не нашёл, где..) получилось только прописать путь, который позволяет писать в командной строке просто tasm и tlink без указания путей к ним. скажите, почему вы так категоричны в использовании командной строки? и оставшийся вопрос: да, я понял, что убрав ret, я убрал существенную часть кода, но на данном этапе это был единственный выход.. как же сделать так, чтобы программа не закрывалась сразу, чтобы можно было увидеть результат её работы? про ключик /t нигде ничего не видел, так что информация очень полезная, спасибо. кстати сказать, когда запускаю помощь, TLINK /? окошко открывается тоже только на мгновение и сразу закрывается.. видимо, я уже не понимаю какой-то принципиальной вещи, не могли бы вы и это пояснить? Последний раз редактировалось rpy3uH; 29.09.2008 в 10:57. |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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 |