2012/03/24

MIPS 32 процессорын ассемблер хэлийг ХАМТДАА сурцгаая!

За, КТМС-д Компьютерын зохион байгуулалт, ассемблер гэдэг хичээл дээр анх MIPS процессорын ассемблер хэлийг үзэж байсан. Гэвч муу монш чинь бүгдийг нь таг мартчихсан байна. Тэгээд сэргээдэг юм бил үү? гэж бодоод, нэг сэргээж байгаагийнх бусадтайгаа хуваалцъя гэж бодлоо.

Intel юм уу? AMD процессорын ассемблер хэлийг суръя гэсэн чинь ямар хэцүү юм бэ? Тиймээс MIPS-ээ эхлээд сурахаар шийдлээ.


Надтай хамт байгаа бол эхлээд програмаа суулгая. Бидэнд тийм хийсвэржүүлсэн програм хэрэг болох юм. Учир нь бид жинхэнэ MIPS процессор дээр програм бичихгүй харин Intel юм уу AMD процессор дээрээ MIPS процесс дээр програмчилж байгаа юм шиг байлгах програм хэрэгтэй юм.

Эндээс QtSpim гэсэн програмыг тат http://sourceforge.net/projects/spimsimulator/files/
Windows дээр суулгах нь Windows гэснийг нь, Linux дээр суулгах нь Linux гэснийг нь. Windows дээр суулгахад асуудал байхгүй. Харин Linux дээр суулгах гэж байгаа бол тэр deb файлаа татаад суулгахгүйгээр задлах хэрэгтэй.
Задарсан хавтаст нь DEBIAN, usr гэсэн хоёр хавтас бий. usr/bin хавтас дотор qtspim гэсэн програм бий. Тэрийг ажиллуулахад л болно.

Тэгээд ажиллуулахад нэг ийм цонх гарах нь байна.

Нэг програм бичиж туршиж үзье.
8-р регистрт 5 гэсэн утга олгоод, 9-р регистрт 6 гэсэн утга олгоод 10-р регистрт нь энэ хоёрын нийлбэрийг хадгалах програм бичье.
Windows дээр notepad-аа нээгээд, Linux дээр нэг text editor програмаа нээгээд

main:
ori   $8, $0, 5
ori   $9, $0, 6
add  $10, $8, $9



Энэ кодыг бичээд өргөтгөлийг нь asm гэж өгөөд хадгална.
QtSpim програм дээрээ File->Load file гээд хадгалсан файлаа зааж өгнө.
Тэгээд ногоон гурвалжин товч дээр дарах юм уу? Simulator->Run/Continue гэдгийг дарна. Тэгээд програм ажиллана. Нэг алдааны цонх гарч ирнэ. Зүгээр OK гээд дарчих. Дараа нь тэрийг тайлбарлана. За үр дүнгээ харъя.


User Text Segment гэдгийн 0х00400024 гэдэг хаягаас манай програм эхэлж байна. Зүүн талын хэсэгт регистрүүдийн утгууд байна. R8 дээр 5, R9 дээр 6, R10 дээр b гэсэн утгууд орсон байна. b гэдэг нь 16-тын тооллын систем дээр 11 юм. Ингээд бидний 5 + 6 гэдэг програм амжилттай биелэгдлээ.

Дараагийн удаа тооллын системийн тухай оруулна.

No comments:

Post a Comment