Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 11:29   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Значение константы превышает допустимое значение.

Доброе утро. Казалось бы простейшее, но я об него споткнулся. Код убитый, т.к. я сначала следовал своей цели, а потом копировал в нее разные строки из уроков. Ничего не помогло. Код практически ничего не делает, да и не компилируется. Но в строке
Код:
mov ax,[array1+si]
ошибка. Почему? Прошу обратить внимание на ошибку, а не на бесполезность кода.
Код:
include '%fasminc%\win32ax.inc'
.data
count  db 6
array1 dw 1,1,1,1,1,1
array2 dw 2,2,2,2,2,2
.code
start:
         mov ecx,0
         mov ebx,0
         mov eax,0
         mov di,10
         mov si,0
lp:
         mov ax,[array1+si]
         sub [array2],ax
         sub bx,2
         add dx,2
         loop lp
invoke ExitProcess,0
.end start
Размеры соответствуют. В первый раз такое.
Заранее спасибо.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 03.01.2012, 11:58   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы бы писали тип приложения первой строкой, так более правильно:

а зачем делать так?

почему бы не сделать так:
Код:
include '%fasminc%\win32ax.inc'
.data
count  db 6
array1 dw 1,1,1,1,1,1
array2 dw 2,2,2,2,2,2
.code
start:
         mov ecx,6
         mov edi,array2
         mov esi,array1
lp:
	 mov ax,[array1]
         sub [array2],ax
         add edi,2
	 add esi,2
         loop lp
     invoke ExitProcess,0

.end start
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:36   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
почему бы не сделать так:
Я выполняю задание. Говорю, что код бред. Я его просто перемешал, пытаясь устранить ошибку(для спортивного интереса)
Цитата:
вы бы писали тип приложения первой строкой, так более правильно:
Что за тип приложения?
В чем все-таки заключается моя ошибка?

http://asmworld.ru/uchebnyj-kurs/014-rezhimy-adresacii/ - в конце урока задание. Там же и решение, но я хочу свое сделать.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 03.01.2012 в 15:39.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 03.01.2012, 15:41   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ошибка в том что регистры то 32-битные вообще то.
mov ax,[array1+esi] надо.
Код:
format PE console; я про это, чтоб результат компилирования был четко известен(не люблю полагаться на значения по умолчания в таких вещах)
include 'E:\Programming\fasm\c_fasm\INCLUDE\win32ax.inc'
.data
count  db 6
array1 dw 1,1,1,1,1,1
array2 dw 2,2,2,2,2,2
.code
start:
         mov ecx,0
         mov ebx,0
         mov eax,0
         mov di,10
         mov si,0
lp:
         mov ax,[array1+esi]
         sub [array2],ax
         sub bx,2
         add dx,2
         loop lp
invoke ExitProcess,0
.end start
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 16:00   #5
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Спасибо. Я попробую. Сейчас не получится.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение на другом листе и подставить значение следующей ячейки ElenaNTro Microsoft Office Excel 12 11.02.2019 12:44
Допустимое значение veter48 Помощь студентам 3 17.09.2011 23:02
Как просуммировать ячейки в которых значение более трех и значение болеетрех ячеек подряд? maruk Microsoft Office Excel 9 30.04.2011 00:07
Добавлене в DbLookUpListbox обычной строковой константы + значение поля Macklay БД в Delphi 2 28.06.2009 12:43
Получить строковое значение константы в коде CaptainNemo Microsoft Office Word 2 09.06.2009 06:47