Intel汇编-传送MMX整数
# An example of using the MMX data types (傳送MMX整數)
?? ?.section .data
values1:
?? ?.int 1, -1
values2:
?? ?.byte 0x10, 0x05, 0xff, 0x32, 0x47, 0xe4, 0x00, 0x01
?? ?.section .text
?? ?.globl main
main:
?? ?nop
?? ?movq values1, %mm0
?? ?movq values2, %mm1
?? ?movl $1, %eax
?? ?movl $0, %ebx
?? ?int $0x80
# gcc -g -o 04-movq 04-movq.s -m32
# gdb 調試器查看寄存器值
gdb -q -f 04-movq
Reading symbols from 04-movq...
(gdb) list
warning: Source file is more recent than executable.
1?????? # An example of using the MMX data types (傳送MMX整數)
2
3?????????????? .section .data
4?????? values1:
5?????????????? .int 1, -1
6?????? values2:
7?????????????? .byte 0x10, 0x05, 0xff, 0x32, 0x47, 0xe4, 0x00, 0x01
8
9?????????????? .section .text
10????????????? .globl main
(gdb)
11????? main:
12????????????? nop
13????????????? movq values1, %mm0
14????????????? movq values2, %mm1
15????????????? movl $1, %eax
16????????????? movl $0, %ebx
17????????????? int $0x80
18
19????? # gcc -g -o 04-movq 04-movq.s -m32
20
(gdb) b 13
Breakpoint 1 at 0x119e: file 04-movq.s, line 13.
(gdb) r
Starting program: /home/04-movq
Breakpoint 1, main () at 04-movq.s:13
/home/04-movq.s:13:213:beg:0x5655619e
13????????????? movq values1, %mm0
(gdb) s
/home/04-movq.s:14:234:beg:0x565561a5
14????????????? movq values2, %mm1
(gdb) s
/home/04-movq.s:15:255:beg:0x565561ac
15????????????? movl $1, %eax
(gdb) p $mm0
$1 = {uint64 = -4294967295, v2_int32 = {1, -1}, v4_int16 = {1, 0, -1, -1}, v8_int8 = {1, 0, 0, 0, -1, -1, -1,
??? -1}}
(gdb) p $mm1
$2 = {uint64 = 72308588487312656, v2_int32 = {855573776, 16835655}, v4_int16 = {1296, 13055, -7097, 256},
? v8_int8 = {16, 5, -1, 50, 71, -28, 0, 1}}??? // 十進制
(gdb) p/x $mm1
$3 = {uint64 = 0x100e44732ff0510, v2_int32 = {0x32ff0510, 0x100e447}, v4_int16 = {0x510, 0x32ff, 0xe447, 0x100},
? v8_int8 = {0x10, 0x5, 0xff, 0x32, 0x47, 0xe4, 0x0, 0x1}}??? // 十六進制
總結
以上是生活随笔為你收集整理的Intel汇编-传送MMX整数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MMX的数据结构 MMX指令集
- 下一篇: MMX指令集