IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> разные типы адресации в ассемблере, вопрос
сообщение
Сообщение #1


Гость






всем привет ! smile.gif

объясните мне пожалуйста базированную и индексную адресацию в ассемблере.
например, что значат эти строчки:
1. mov al,[bx]+3
2. mov al,[bx+3]
3. mov cx,matr[bx][di]
4. mov ax,matr[bx*4][di]
5. mov ax, es:[bx]

я понимаю, что для вас это наверно глупый вопрос, но всеже ответьте плиз.

ЗЫ: пасибки всем за ответы smile.gif ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


HELLO ALL
smile.gif

; полноценная рабочая программа
; СОВЕТУЮ ЕЕ ПРОКРУТИТЬ ЧЕРЕЗЕ ОТЛАДЧИК
; И ВСЕ СТАНЕТ ЯСНО КАК ДЕНЬ
; НАДЕЮСЬ НИГДЕ НЕ ОШИБСЯ
;

.MODEL  SMALL
.STACK  100h
.DATA

value              DB 10,11,12,13,14,15,0ah,01h,1h

.CODE
start:
  mov     ax,@data ;значение адреса сегмента данных получаем
  mov     ds,ax    ;инициализ сегмент данных т.е. в рег DS будет наход
          	;адрес начала сегмента данных
  ;===============================
  mov	bx,offset value	;получаем адресс переменной т.е.
			;адрес начало сегмента плюс адрес переменной
  mov	al,[bx]+3
 ; в данном случае это означает что из адреса наход в регистре
 ; BX со смещением 3 т.е. к числу наход в регистре BX прибавить 3
 ; это будет конечный адрес т.е. число которое окажется в регистре AL
 ; будет 13 0d
  mov   bx,offset value ; по новой
  mov   al,[bx+3]       ; тоже самое
  
  mov   bx,2		;задаем смещение
  mov   di,1		;---
  
  mov   cx,offset value[bx][di] ;в регистр CX значение из адреса value+BX+DI
  				;будет число 0e0d -> 1413 надеюсь понятно
  				;почему перевернутое
  				;
  mov   ax,offset value[bx+4][di];значение из адреса value+bx+4+1=7 -> 0101
  
  mov   ax,ds:[bx];это пара т/е/ сегмент даных который мы назначили
                  ; в начале+значение а регистре BX будет число 0d0c
                  ; т/к/ в BX у нас значение 2 весь счет идет в сегменте
                  ; данных от нуля
                  
  mov   ax,4c00h ; exit
  int   21h
  
END start


Сообщение отредактировано: volvo -


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






shadow, спасибо за объяснения smile.gif. но не мог бы ты еще один момент уточнить: получается что записи
mov al,[bx]+3 и mov al,[bx+3] одинаковы ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Да, одинаковы, обе получают байт по адесу bx+3


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


а на каком асме написана прога?
а то мы прходим turbo assembler.... и пишем начало по другому...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


да IMHO эта прога и на TASMе оттранслируется нормально... в EXE-шник...
чтоб в COM, надо бы еще ORG 100h добавить smile.gif
а вместо первых двух строчек кода (присвоения ds) можно написать ASSUME DS:DATA...
но это уже оффтопик smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Acheter Du Cytotec En Ligne
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






kamagra in the philippines
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.04.2025 14:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name