Привет, я искал онлайн по всему миру, и моя книга просто не объясняет, как работают инструкции по загрузке сборки Sparc.сборка и сборка sparc Загрузка и хранение
ldsb - load signed byte
ldub - load unsigned byte
ldsh - load signed half word
Lduh - load unsigned half word
Ld - load word
Ldd - load double
Я также знаю байт составляет 8 бит, и это 2 шестнадцатеричных цифр, половина составляет 16 бит, и слова составляет 32 бита.
Так что, глядя на этот пример с приведенными ниже решениями, кто-то может объяснить, как прийти, чтобы ответить на этот вопрос. Первый столбец Адрес (десятичный) и второй столбец данных (шестнадцатеричный)
300. 78
301. 56
302. 34
303. 12
304. 9a
305. 00
306. 'H'
307. 'e'
308. 'l'
309. 'l'
310. 'o'
Ex. ld[%o1], %o0 %o1 = 0x12345678
Ex2. Ldub[%o0+7], %o2 %o2 = 'e'
Ex3. Ldsh[%o0+3], %o3 Error
Ex4. Ldsh[%o0+4], %o4 %o4 = 0x9a
Ex5. Ldsb[%o0+4], %o5 %o5 = ffffff9a
мне просто нужно помочь объяснить, почему так я могу понять эту концепцию. Спасибо
Я всегда удивляюсь, что порядок байтов для систем Sparc всегда велик. Существуют ли небольшие варианты Endar Sparc (как и MIPS, которые могут быть настроены как маленькие или большие endian)? –
Предположительно SPARC является _bi_-endian (может быть LE или BE), начиная с v9. В последний раз, когда я использовал или написал код для, машина SPARC была почти 10 лет назад, так что функция не то, что я могу вспомнить, используя себя. Было уместно указать, что для ответа на вопрос необходимы определенные предположения. – Michael