1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
объясните мне пожалуйста базированную и индексную адресацию в ассемблере. например, что значат эти строчки: 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]
я понимаю, что для вас это наверно глупый вопрос, но всеже ответьте плиз.
; полноценная рабочая программа
; СОВЕТУЮ ЕЕ ПРОКРУТИТЬ ЧЕРЕЗЕ ОТЛАДЧИК
; И ВСЕ СТАНЕТ ЯСНО КАК ДЕНЬ
; НАДЕЮСЬ НИГДЕ НЕ ОШИБСЯ
;
.MODELSMALL.STACK 100h
.DATA
value DB 10,11,12,13,14,15,0ah,01h,1h
.CODEstart:
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
ENDstart
Сообщение отредактировано: volvo -
--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы. МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/
да IMHO эта прога и на TASMе оттранслируется нормально... в EXE-шник... чтоб в COM, надо бы еще ORG 100h добавить а вместо первых двух строчек кода (присвоения ds) можно написать ASSUME DS:DATA... но это уже оффтопик