Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) |
![]() |
eXeL@B —› Основной форум —› MASM пишет что-то непонятное |
Посл.ответ | Сообщение |
|
Создано: 14 июля 2005 21:32 · Личное сообщение · #1 Привет всем, Хотел еще вопросик задать простенький, Пользуюсь MASM для MS DOS, компилирую программку ml.exe myname.asm /AT Выдает ошибку в строчке: mov ax, [bx] Пишет must be index or base register Что это значит, вообще хочу переслать в ax, то что содержиться по адресу в bx. Спасибо всем кто отвечает! ![]() |
|
Создано: 14 июля 2005 21:50 · Личное сообщение · #2 |
|
Создано: 14 июля 2005 23:33 · Личное сообщение · #3 |
|
Создано: 14 июля 2005 23:35 · Личное сообщение · #4 Jupiter На фиг ты человека туда послал? ИМХО, ответа там всё равно не найти, а темы лишние лучше не разводить. freshman пишет: Выдает ошибку в строчке: freshman, ну ты же понимаешь, что ошибка не в этой строке. Тогда зачем так спрашивать? Прикрепи лучше файлик или сам ищи ошибку (а скорее всего опечатку). freshman пишет: Пишет must be index or base register Что это значит, Это значит, что в системе команд x86 процессора нет 16-ричных команд для загрузки из памяти указанной НЕ регистром указателем или регистром базы. У тебя BX – регистр базы, значит, такая команда есть, а вот если бы было наоборот: mov bx, [ax] То была бы эта ошибка. Короче давай файлик. ![]() Или я неправ? ----- Всем привет, я вернулся ![]() |
|
Создано: 14 июля 2005 23:36 · Личное сообщение · #5 |
|
Создано: 14 июля 2005 23:58 · Личное сообщение · #6 Bitfry На фиг ты человека туда послал? ИМХО, ответа там всё равно не найти, а темы лишние лучше не разводить. ну-ну, а здесь подобные темы разводить - самое то, я понимаю но ты прав, что не туда его послал - ему скорее нужно подробнее изучить ассемблер Короче давай файлик. только так. а то, может быть, требуется что-нить типа byte/word ptr: ----- EnJoy! ![]() |
|
Создано: 15 июля 2005 00:02 · Личное сообщение · #7 |
|
Создано: 15 июля 2005 01:46 · Поправил: read_me · Личное сообщение · #8 |
|
Создано: 15 июля 2005 02:12 · Личное сообщение · #9 Всем большое спасибо, дело в том, что ту програмку которую я писал в начале я затер своими "экспериментами", так что установить что было в начале уже нельзя, наверное в программе я написал mov bx, [ax] после переработки получилась такая вот рабочая программка: CSEG segment org 100h Begin: mov dx, offset data mov bx,dx add bx,2 mov ax,word ptr [bx] int 20h data db 'ABCD$' CSEG ends end Begin Вообще то она просто пишет в ax "CD", благодаря вам узнал что ax и bx не равнозначны по способам применения. Еще раз большое спасибо! ![]() |
|
Создано: 15 июля 2005 02:24 · Личное сообщение · #10 |
|
Создано: 15 июля 2005 09:36 · Личное сообщение · #11 read_me пишет: x и bx не равнозначны по способам применения В данном случае не совсем так: в ДОСе ax, bx, cx и dx используются для загрузки параметров при выполнении прерываний. В остальном - разницы нет, кроме специфичных команд типа loop, stos, scas... ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 15 июля 2005 10:06 · Личное сообщение · #12 |
|
Создано: 15 июля 2005 10:19 · Личное сообщение · #13 |
![]() |
eXeL@B —› Основной форум —› MASM пишет что-то непонятное |