0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
1

Способы адресации

29.05.2016, 23:05. Показов 1785. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Подскажите пожалуйста почему в первом случае в регистр BX записывается адрес массива а, а во втором 5 ?

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
org 100h
a dw 5,4,3,2,1
b dw 2,3,4,5,6
Begin:    
  mov bx, a  
  mov cx, 5
  mov si, 0
  cik:             
    mov ax, a[bx + si]
    add si, 2        
  LOOP cik
end Begin
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
org 100h
a dw 5,4,3,2,1
b dw 2,3,4,5,6
Begin:         
  mov cx, 5
  mov si, 0
  cik:
    mov bx, a               
    mov ax, a[bx + si]
    add si, 2        
  LOOP cik
end Begin
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2016, 23:05
Ответы с готовыми решениями:

Способы адресации операндов
Подскажите пожалуйста, какие используются способы адресации в этой программе MOV AX,4000 MOV...

Способы адресации операндов
Доброго времени суток. В программе ниже три раза вызывается макрокоманда Delete. Какие способы...

Типы адресации
Здравствуйте! Помогите, пожалуйста. Я правильно определила типы адресации? MOV BX, OFFSET A+2 ;...

Исследование способов адресации операндов
Доброго вечера, есть здание Операция| 1-й операнд или получатель| 2-й операнд или источник...

7
Заблокирован
29.05.2016, 23:10 2
Цитата Сообщение от Denimm77 Посмотреть сообщение
почему в первом случае в регистр BX записывается адрес массива а, а во втором 5 ?
Это кол-во элементов в массиве. Каждый loop cx будет декрементироваться. И так, пока не станет нулем.
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
29.05.2016, 23:16  [ТС] 3
А почему именно в регистре bx? Разве mov bx, a не запишет адрес начала массива а?
0
Заблокирован
29.05.2016, 23:18 4
Цитата Сообщение от Denimm77 Посмотреть сообщение
А почему именно в регистре bx?
Почему что в bx?
Цитата Сообщение от Denimm77 Посмотреть сообщение
Разве mov bx, a не запишет адрес начала массива а?
Ииии? Закончи свою мысль, а то я тебя не понимаю.
0
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
29.05.2016, 23:28  [ТС] 5
Мне непонятно, почему в bx записывается значение 1-го элемента массива, вместо адреса начала этого массива. Если вместо массива а, использовать массив b, в bx будет 2

Добавлено через 1 минуту
Это если написать mov bx, a(или b) в цикле, а перед циклом - записывает именно адрес
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
30.05.2016, 00:09 6
Лучший ответ Сообщение было отмечено Denimm77 как решение

Решение

Denimm77, а если вы запишите
Assembler
1
2
a dw 0
mov ax,a
в AX то не адрес будет а значение переменной,
с массивом тоже самое, только нумерация идет с 0, поэтому первый элемент или нулевой как вам нравится

если нужно адрес, напиши
Assembler
1
mov si,offset a
или
Assembler
1
lea si,a
1
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 25
30.05.2016, 02:25  [ТС] 7
Спасибо большое) Просто в лекциях написано, что при такой записи в регистр запишется адрес, а если записать, к примеру, mov bx, [a], то значение. А в книжка копаться, пока времени нет. Спасибо большое ещё раз)
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
30.05.2016, 06:48 8
Denimm77,
можно и так значение поместить,
сначало адрес в si,
а след строкой слово по адресу si в регистр
Assembler
1
2
lea si,a
mov ax,word ptr [si]
все зависит от задач, и алгоритма,
если предмет нужен, попробуйте поменять к нему подход
0
30.05.2016, 06:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2016, 06:48
Помогаю со студенческими работами здесь

Регистры для косвенной адресации
Написал программу, в ней используются такие строки: mov ,DX mov ,BX Программа не работала,...

Исследование способов адресации операндов
Доброго времени суток! Пытаюсь делать лабораторную и понимаю, что что-то идет не так. Прикрепляю...

Как замерить адресации на компьютере?
Подскажите как замерить адресации на компьютере? т.е. найти их скорость и найти наибольшую?

Режимы адресации, организация циклов
Как переделать этот код на Ассемблер?Никак не получается верно. for(q=0,i=0;q<len;q++) {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru