Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MIPS ассемблер. Помогите разобраться 
:(
    Опции темы
Vovo4ka
Дата 11.7.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Через неделю экзкамен по ассемблеру для MIPS, а я только вчера начал заниматься. :( Экзамен, собственно, будет совсем не сложный, с заданиями типа "hello world", "найти простые числа в массиве" и тп. Но я почти ничего не знаю об ассемблерах, тк раньше никогда не сталкивался. Вобщем, ай нид хелп!

Первый вопрос, который тревожит меня больше всего, какими бывают регистры и чем они друг от друга отличаются? 

Вот например кусок кода
Код

    li    $15, 7        #пишем в регистр $15 значение 7
    move    $a0, $15    #копируем содержимое из $15 в $a0
    li    $v0, 1        #print integer service call
    syscall        #печать


Все работает и в консоль (в SPIM) выводится 7.

Но почему то же самое нельзя записать так?
Код

li    $a0, 7    
li    $v0, 1        
syscall    


или как-нибудь так:
Код

li    $a0, 7    
move    $15, $a0
li    $t2, 1    
syscall


Короче, для чего нужны те или иные регистры, сколько их всего?


ps: Есть ли какие-то доки по сабжу на русском?

Это сообщение отредактировал(а) Vovo4ka - 11.7.2007, 17:25
PM MAIL   Вверх
Vovo4ka
Дата 12.7.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В общем, немного разобрался. Регистров всего 32. Обращаться к ним можно как по номеру (типа $15), так и по имени ($t2). 

А дальше затык  smile 
Нашел некую таблицу "MIPS registers and the convention governing their use" из которой следует вот что:
Код

регистр            использование

zero               Constant 0 
at                 Reserved for assembler 
v0                 Expression evaluation and 
v1                 results of a function 
a0 - a3            Argument 1 
t0 - t9            Temporary (not preserved across call) 
s0 - s7            Saved temporary (preserved across call) 
k0 - k1            Reserved for OS kernel 
gp                 Pointer to global area 
sp                 Stack pointer 
fp or s8           Frame pointer 
ra                 Return address (used by function call)

Перевести я конечно могу, но вот смысл не совсем понимаю. Например, чем Temporary функционально отличается от Saved temporary, что такое Stack pointer, зачем нужен Return address?... Кто нибудь может "на пальцах" объяснить?

И остается открытым вопрос о документации на русском... 
PM MAIL   Вверх
JackYF
Дата 12.7.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Vovo4ka @  11.7.2007,  17:23 Найти цитируемый пост)
Есть ли какие-то доки по сабжу на русском?

поиск в гугле по "документация Assembler MIPS" ничего не дал?



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Vovo4ka
Дата 12.7.2007, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Поиск дал статью-описание архитектуры этих процессоров и еще немного полезной информации, но конкретно ни документации, ни каких-либо учебных пособий по ассемблеру, ни хотя бы примеров с русскими комментариями я не нашел. :(
PM MAIL   Вверх
JackYF
Дата 12.7.2007, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



н-да. Попробовал поискать сам. Русскоязычную литературу действительно не нашел.
А вот англоязычной немало по запросу, например "Assembler MIPS register description".

В частности, здесь и здесь

Также надыбал по тому же запросу вот это.

Попробуй, авось поможет. Дальше копать все равно придется, наверное, самому.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Vovo4ka
Дата 12.7.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо!
У меня в принципе уже много инфы на английском. Просто все ж таки язык не родной и изучение литературы на нем занимает гораздо больше времени, чем на русском. А время у меня осталось катострофически мало :(

Ну да ладно. "Hello world" я уже написал, а это главное! smile Процесс, вроде бы, идет....

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

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

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


 




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


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

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