Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Типы адресации, матрицы 
:(
    Опции темы
Metalex
Дата 27.10.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Привет всем.
Я сделал вот что:

Зарезервувати місце в пам’яті у сегменті даних Dseg_1 для масиву байт у 10 елементів MasB.
Зарезервувати місце у пам’яті у другому сегменті даних Dseg_2 для масиву слів у 30 елементів з ім’ям MasW.
Зарезервувати місце у додатковому сегменті Eseg для таблиці, складеної з 10 записів по 4 елемента TablB.
Зарезервувати місце у додатковому сегменті Eseg для таблиці подвійних слів з ім’ям TablAdr 40 елементів.
Використовуючи пряму адресацію з індексуванням заповнити масив MasB.
Використовуючи базову адресацію зі зміщенням заповнити MasW.
Використовуючи базову адресацію з індексуванням заповнити TablB наступним чином: в якості змісту 1-го елементу кожного запису береться елемент MasB з тим же номером, що й номер запису. В якості змісту решти полів береться перший байт елементів MasW по порядку їх слідування у масиві.
Використовуючи навперемінно, якщо це можливо чи команду завантаження абсолютної адреси, чи псевдооператори SEG, OFFSET заповнити таблицю TablAdr так, щоб кожний елемент таблиці удавав собою адресу відповідного елементу таблиці TablB
Використовуючи операції зі стеком спочатку залишаємо в TablB порядок елементів у записах незмінними, змінити в зворотному порядку розташування записів, а потім не змінюючи розташування записів змінити на зворотній порядок елементів.

(Знаю, что язык форума русский, но думаю аналогию провести сможет каждый)

Но 8 и 9е задание делал отдельно, все работало, а когда стулил все вместе где-то выбивает из дебагера (пользуюсь стандартным тасмовским), гляньте код, может я где-то с регистрами или еще чего напорол:

Код

title lab2.9

sseg segment para stack 'stack'
db 256 dup (?)
sseg ends

Eseg segment para public 'ext'
TablB db 10 dup (4 dup ('G'))
Eseg ends

cseg segment para public 'code'
assume cs:cseg, ss:sseg, es:Eseg, ds:Dseg_1

start proc far

;задание 7
assume ds:Dseg_1
mov bx, Dseg_1
mov ds, bx
mov si, 0
mov di, 0
mov cl, 10

loop28:
mov dl, MasB[si]
mov TablB[di], dl
inc si
add di, 4
loop loop28

assume ds:Dseg_2  
mov bx,Dseg_2  
mov ds,bx  
mov cx,30  
mov ax,0  
mov di,1  
mov si,0
loop29:  
mov dl,BYTE PTR MasW[si]  
mov TablB[di],dl  
add si,1*2 
inc di  
inc ax  
cmp ax,3  
jne loop210  
inc di  
sub ax,ax
loop210:  
loop loop29


;замена местами записей (10 шт)
mov bx,Eseg
mov es,bx

mov si, 0
mov ax, 0
mov di, 4
mov cx, 10

loop1:
mov dx, 0
mov dl, TablB[si]
push dx
inc si
inc ax
cmp ax, 4
je loop2
jmp loop1

loop2:
mov ax, 0

loop3:
pop dx
mov TablB[di], dl
dec di
inc ax
cmp ax, 4
je loop4
jmp loop3

loop4:
mov ax,0
loop loop1


;замена местами элементов (4 шт 10 раз)
mov si, 0
mov ax, 0
mov di, 0
mov cx, 10

loop9:
mov dx, 0
mov dl, TablB[si]
push dx
inc si
inc ax
cmp ax, 4
je loop10
jmp loop9

loop10:
mov ax, 0

loop11:
pop dx
mov TablB[di], dl
inc di
inc ax
cmp ax, 4
je loop12
jmp loop11

loop12:
mov ax, 0
loop loop9


ret
start endp

cseg ends
end start


Подскажите, пожалуйста, что не так. Спасибо.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Mikl_
Дата 28.10.2010, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 8
Всего: 14



Metalex, привет гуцулам!
وأنا أعلم أن منتدى اللغة الروسية ، لكنني أعتقد أنه مع مساعدة من جوجل ترجمة يستطيع الجميع
 smile 
Знаю, що мова форуму російська, але думаю що за допомогою GOOGLE перевести зможе кожен!

Это сообщение отредактировал(а) Mikl_ - 28.10.2010, 03:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.