Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/107: Рейтинг темы: голосов - 107, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 33
1

Обращение к элементу массива

02.11.2011, 21:22. Показов 20671. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Пытаюсь обратиться к третьему элементу массива, но в результате в регистре ax получается не то, что нужно. То есть хочу получить десятичную 3, а получаю 65264.

Assembler
1
2
3
4
5
6
mas dw 0d,1d,2d,3d,4d,5d
 
codeseg
 
mov si,6
mov ax, mas[si]
Заранее большое спасибо за советы!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2011, 21:22
Ответы с готовыми решениями:

Обращение к элементу массива
Есть следующий код: TITLE FromDecimalToBinary .686 .model flat option casemap:none ...

Обращение к элементу массива?
Не пойму в этом коде 15 строчку, а именно x. Что значит esi*2 и что этто за элемент мы получаем?...

Обращение к элементу массива (встроенный Assembler)
Изучаю ассемблер. В этой задаче хочу в переменную ср положить какой-то элемент массива(массив и...

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается...

6
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
02.11.2011, 21:44 2
Ошибки нет, в ax должна быть тройка. Скорее всего не настроен сегмент данных.
1
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 33
02.11.2011, 21:50  [ТС] 3
Хм.. а как его настроить?
0
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
02.11.2011, 21:59 4
Допустим, имя сегмента данных dseg. Тогда в начале программы надо написать:
Код
	mov ax,dseg
	mov ds,ax
1
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 33
02.11.2011, 23:03  [ТС] 5
Проверьте пожалуйста программку, в которой ищется макс элемент массива.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dataseg
mas dw 1,5,0,2,9
codeseg
 
mov bx, mas; загрузили адрес массива
mov cx, 5; счётчик
mov ax, [bx]; загузить 1-й элемент
 
beg:
cmp [bx], ax; сравнить с максимальным
jl leg; если в [bx] меньше
mov ax, [bx]; если больше, то он - новый макс
 
leg:
add bx,2;
Заранее большое спасибо!
0
273 / 268 / 11
Регистрация: 24.12.2010
Сообщений: 328
02.11.2011, 23:33 6
Какая-то обкусанная програмка, ни начала, ни конца, сегменты не закрыты, нет директивы assume. Вот, подправил:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DSEG SEGMENT
mas dw 1,5,0,2,9
DSEG ENDS
SSEG SEGMENT STACK
db 256 dup(0)
SSEG ENDS
CSEG SEGMENT
assume cs:cseg,ds:dseg
start:  mov ax,dseg
    mov ds,ax
 
    mov bx,offset mas
    mov cx,5
    mov ax,[bx]
beg:    cmp [bx],ax
    jle leg
    mov ax,[bx]
leg:    add bx,2
    loop beg
 
    mov ax,4c00h
    int 21h
CSEG ENDS
end start
2
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 33
02.11.2011, 23:56  [ТС] 7
Большое спасибо! Я только начинаю изучать ассемблер, и привыкаю к синтаксису и оформлению программы
0
02.11.2011, 23:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2011, 23:56
Помогаю со студенческими работами здесь

Обращение к элементу массива
Объясните пожалуйста, что происходит в строке помеченной *** void main(){ char str; char...

Обращение к элементу массива
Доброго вечера! Напомните, пожалуйста, как правильно обращаться к элементу массива ? Часть...

Обращение к элементу массива
Как мне обратиться к последнему элементу массива? например: Array // i = 0 тут нужно что бы -1...

Обращение к элементу массива
Есть массив, который приходит мне в формате json, как мне обратиться к примеру ко второму элементу,...

Обращение к несуществующему элементу массива
В соседнем разделе умерла практически не родившись дискуссия К сожалению конструктивного ответа...

Обращение к элементу массива через ->
Приветствую! Встретил такое обращение к элементу массива в представлении: @foreach($posts...


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

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