Base register - Бааз регистр

Чөлөөт нэвтэрхий толь — Википедиагаас
Jump to navigation Jump to search

Регистрт word – ыг ачаалах MIPS команд нь lw команд юм. Харин word – ыг хадгалах команд нь sw юм. Регист болон санах ойн хаяг нь тодорхой байх ёстой. MIPS процессорын команд нь 32 бит бөгөөд мөн санах ойн хаяг нь 32 бит болно.

Команд нь санах ойд хандахдаа бааз регистр болон шилжлэг хаяг (offset) – ийг хэрэглэдэг. Бааз регистр нь ерөнхий зориулалтын регистр бөгөөд 32 битийн хаягийг агуулдаг. Offset нь 16 битийн тэмдэгтэй бүхэл тоо бөгөөд командад агуулагддаг. Бааз регистр дэх хаягийн нийлбэр нь шилжлэг хаяг болон хаягийг агуулдаг. Командын машин кодыг энд харуулъя. Үүнд бааз регистр, хадгалах регистр болон offset тодорхойлогдсон. Мөн санах ойн хаягийг шууд агуулаагүй.

Word – ыг хадгалах команд sw нь регистрээс санах ой руу өгөгдлийг хуулдаг. Регистр нь өөрчлөгдөхгүй бөгөөд санах ойн хаяг нь бааз регистрээр тодорхойлогдоно. Эхний команд нь хасах 8 буюу хоёртын гүйцээлтээр тодорхойлогдсон.

Ингэхдээ хоёртын бичлэгээрээ машин командад агуулагдах болно. Энэ нь унших болон тооцоолоход удаан байдаг. Дараагийн хоёрдох командад хасах 8 нь тэмдэгтэй аравтын бичлэгээр илэрхийлэгдсэн байна. Харин ассемблер нь энэ 2 командыг ижилхэн машин командад хөрвүүлдэг.

32 битийн бааз регистр болон offset – ыг хэрэглэн 32 битийн lw эсвэл sw команд нь санах ойд хандана. Харин бааз регистр нь бааз хаягаа авахдаа lui командыг хэрэглэдэг. Энэ нь шууд операндыг хадгалах регистрийн эхний хоёр байтад хуулдаг.

sw $12 , 0xFFF8($13) or sw $12 , -8($13) Эхний команд нь хасах 8 буюу хоёртын гүйцээлтээр тодорхойлогдсон. Ингэхдээ хоёртын бичлэгээрээ машин командад агуулагдах болно. Энэ нь унших болон тооцоолоход удаан байдаг. Дараагийн хоёрдох командад хасах 8 нь тэмдэгтэй аравтын бичлэгээр илэрхийлэгдсэн байна. Харин ассемблер нь энэ 2 командыг ижилхэн машин командад хөрвүүлдэг. 32 битийн бааз регистр болон offset – ыг хэрэглэн 32 битийн lw эсвэл sw команд нь санах ойд хандана. Харин бааз регистр нь бааз хаягаа авахдаа lui командыг хэрэглэдэг. Энэ нь шууд операндыг хадгалах регистрийн эхний хоёр байтад хуулдаг.

Ашигласан материал: http://www.billqualls.com/assembler/