Применение искинов - шоссе империализма (Стенгазета русификаторов ИТ)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Магия кодирования aarch64

Сообщений 1 страница 12 из 12

1

Магия кодирования aarch64:

Код:
  1c:	d28001e0 	mov	x0, #0xf                   	// #15
  20:	d2801fe0 	mov	x0, #0xff                  	// #255
  24:	d281ffe0 	mov	x0, #0xfff                 	// #4095
  28:	d29fffe0 	mov	x0, #0xffff                	// #65535
  2c:	b2404fe0 	mov	x0, #0xfffff               	// #1048575
  30:	b2405fe0 	mov	x0, #0xffffff              	// #16777215
  34:	b2406fe0 	mov	x0, #0xfffffff             	// #268435455
  38:	b2407fe0 	mov	x0, #0xffffffff            	// #4294967295
  3c:	b2408fe0 	mov	x0, #0xfffffffff           	// #68719476735
  40:	b2409fe0 	mov	x0, #0xffffffffff          	// #1099511627775
  44:	b240afe0 	mov	x0, #0xfffffffffff         	// #17592186044415
  48:	92ffffe0 	mov	x0, #0xffffffffffff        	// #281474976710655
  4c:	92fffe00 	mov	x0, #0xfffffffffffff       	// #4503599627370495
  50:	92ffe000 	mov	x0, #0xffffffffffffff      	// #72057594037927935
  54:	92fe0000 	mov	x0, #0xfffffffffffffff     	// #1152921504606846975
  58:	92800000 	mov	x0, #0xffffffffffffffff    	// #-1

0

2

что-то здесь не так:

Код:
  7c:	b204cfe0 	mov	x0, #0xf0f0f0f0f0f0f0f0    	// #-1085102592571150096
  80:	b204cfe0 	.word	0xb204cfe0
  84:	11008000 	add	w0, w0, #0x20

0

3

[html]2017-04-20, Dominik Inführ, Encoding of immediate values on AArch64
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://dinfuehr.github.io/blog/encoding-of-immediate-values-on-aarch64/">https://dinfuehr.github.io/blog/encoding-of-immediate-values-on-aarch64/</a>
<!--
mov x0, #0xf0f0f0f0f0f0f0f0    // #-1085102592571150096
b204cfe0-->[/html]

https://metanit.com/assembler/arm64/

https://mariokartwii.com/armv8/

Отредактировано Лис (2024-11-03 18:00:46)

0

4

Вот еще

https://alisdair.mcdiarmid.org/arm-imme … -encoding/

Вопрос здесь, почему машинный код одинаковый, а дизассемблер выдает не одинаковые строки:

Код:
7c:	b204cfe0 	mov	x0, #0xf0f0f0f0f0f0f0f0    	// #-1085102592571150096
  80:	b204cfe0 	.word	0xb204cfe0

0

5

ИванАс написал(а):

Вопрос здесь, почему машинный код одинаковый, а дизассемблер выдает не одинаковые строки

«Метод диагностики путём замены»:
замените диагностируемую запчасть на заведомо исправную,
если всё заработало, значит неисправна была диагностируемая запчасть.

В данном случае надо найти корректно работающий дизассемблер.

Отредактировано Лис (2024-11-03 19:39:46)

0

6

Лис написал(а):

В данном случае надо найти корректно работающий дизассемблер.

Попробывал на сайте https://shell-storm.org/online/Online-Assembler-and-Disassembler/?opcodes=xe0xcfx04xb2xe0xcfx04xb2&amp;arch=arm64&amp;endianness=little&amp;baddr=0x00000000&amp;dis_with_addr=True&amp;dis_with_raw=True&amp;dis_with_ins=True#disassembly

Код:
0x0000000000000000:  E0 CF 04 B2    orr x0, xzr, #0xf0f0f0f0f0f0f0f0
0x0000000000000004:  E0 CF 04 B2    orr x0, xzr, #0xf0f0f0f0f0f0f0f0

Неужели aarch64-linux-gnu-objdump может врать.

0

7

Нашел, выдает разные результаты на aarch64-linux-gnu-objdump -D и aarch64-linux-gnu-objdump -d

0

8

У меня нет правки сообщений - это плохо.
aarch64-linux-gnu-objdump -D - все обрабатывается.

0

9

ИванАс написал(а):

У меня нет правки сообщений

Я поменял настроки, и мне интересно, стало ли лучше. Теперь редактирование должно работать, наверное.

Отредактировано Лис (2024-11-03 20:26:53)

0

10

Лис написал(а):

Я поменял настроки

заработало.

0

11

ИванАс написал(а):

заработало.

Спасибо. Вернёмся к дизассемблерам. Мне больше нечего сказать, кроме того что я бы читал руководство и пробовал проверять на процессоре. Но это слишком долго и сложно, для этого надо иметь мотивацию, интерес. У меня есть более другие.

0

12

Лис [M], можешь не отвечать. Я здесь просто пишу.

Одно и тоже:

Код:
 45     .word 0xb204cfe0
 46     mov x0, #0xf0f0f0f0f0f0f0f0
 47     orr x0, xzr, #0xf0f0f0f0f0f0f0f0

0