|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.11.2011, 14:29 | #1 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 21
|
трансляция и компановка программ на асемблере используя пакет TASM 5
Я вот по учебнику изучаю асемблер, но учебник для процессоров пентиум 3 а у меня Celeron будут ли выполняться программы приведёные в примерах этого учебника
|
29.11.2011, 15:07 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
serrggeee
Для этого нужно знать хотя бы название твоего учебника, и даже если будут -- кривые руки пока еще никто не отменял... |
29.11.2011, 15:43 | #3 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 21
|
кника называется "Твой электронный учебник" издательство питер
это код программы ; Prg_3_1.asm ;Программа преобразованого шеснадцатеричного числа ;в символьном виде двоичное представление. ;Вход : исходное шестнадцатеричное число из двух цифр. ;вводится с клвавиатуры. ;Выход : результат преобразования пемещается в регистр dl . ; ; data segment para public "data" ; сегмент данных message db "Введите две шестнадцатеричные цифры, $" data ends stk segment stack db 256 dup ("?") ; сегмент стека stk ends code segment para public "code" ; начало сегмента кода main proc ; начало процедуры main assume cs : code , ds : data , ss : stk mov ax , data ; адрес сегмента данных в регистр ax mov dx , ax ; ax в ds mov ah , 9 mov dx , offset message int 21h xor ax , ax ; очистить регистр ax mov ah , 1h ; 1h в регистр ah int 21h ; генирация прерывания с номером 21h mov dl , al ; содержимое регистра al в регистр dl sub dl , 30h ; вычитание: (dl)= (dl)-30h cmp dl , 9h ; сравните (dl) с 9h jle M1 ; перейти на метку М1 , если dl<9h или dl=9h sub dl , 7h ; вычитание : (dl)= (dl)-7h M1: ;определение метки М1 mov cl , 4h ; пересылка 4h в регистр cl shl dl , cl ; сдвиг содержимого dl на 4 разряда влево int 21h ; вызов прерывания с номером 21h sub al , 30h ; вычитание: (dl)= (dl)-30h cmp al , 9h ; сравните (al) с 9h jle M2 ; перейти на метку M2, если al<9h или al=9h sub al , 7h ;вычитание : (al)= (al)-7h M2: ; определение меткиM2 add dl , al ; сложение: (dl)= (dl)+(al) mov ax , 4c00h ; пересылка 4c00h в регистр ax int 21h ; вызов прерывания с номером 21h main endp ;конец процедуры main code ends ;конец сегмента кода end main ;конец программы с точкой входа main |
30.11.2011, 04:10 | #4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
serrggeee
Не вижу упоминания в этой программе вообще ни о каком процессоре, ни о пне 3, ни о Celeron. Хотя видно что программа написана для DOS и для любого 16-разрядного Intel x86. Так что на твоем Celeron'е гарантированно будет выполнятся под Windows в режиме DOS-эмуляции |
30.11.2011, 09:21 | #5 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 21
|
я использую пакет masm 32 в папку BIN поместил папку New куда поместил свой проект это для порядка.
это батник трансляции которая прошла и создала только объектный код @ echo ___________Prg_____________________ ____________________ c:\masm32\bin\ml.exe /coff /c .\ISHODNIC\Prg.asm ,Prg.obj , Prg.lst а это батник компановщика @ echo ___________Prg_____________________ ____________________ @ if EXIST Prg.obj c:\masm32\bin\link.exe /SUBSYSTEM:WINDOWS New\Prg.obj подскажите почему не проходит компановка? |
30.11.2011, 11:19 | #6 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
serrggeee
потому что программа для DOS, а ты ее компонуешь с ключами для Windows, ты бы подольше и повнимательнее почитал бы свой "электронный учебник", там это должно быть... |
30.11.2011, 11:55 | #7 |
Пользователь
Регистрация: 12.01.2010
Сообщений: 21
|
Спасибо! а этот ключ как я понимаю @
|
30.11.2011, 12:34 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
@ это аналог echo off для одной команды.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.12.2011, 04:10 | #9 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
serrggeee
ключи я выделил красным цветом c:\masm32\bin\ml.exe /coff /c .\ISHODNIC\Prg.asm ,Prg.obj , Prg.lst @ if EXIST Prg.obj c:\masm32\bin\link.exe /SUBSYSTEM:WINDOWS New\Prg.obj а для DOS должно быть c:\masm32\bin\ml /c .\ISHODNIC\Prg.asm c:\masm32\bin\link .\ISHODNIC\Prg.obj,,,,, Книги по прежнему игнорируешь? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компиляция программ на TASM | Pusher | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 14 | 27.03.2013 12:22 |
как установить пакет TASM | serrggeee | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 21 | 30.11.2011 09:17 |
TASM дело тонкое!:) (Где в TASM IDE?) | 3.14oner | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 15.11.2011 16:20 |
Не проходит компановка | Artemprodigy | Visual C++ | 1 | 27.10.2010 23:53 |
Компиляция программ TASM | lSMoKEl | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 16.10.2009 20:05 |