mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
ch3-02: 完善
This commit is contained in:
parent
9ca09e480f
commit
ec36b35c86
@ -159,17 +159,16 @@ Go汇编为了简化汇编代码的编写,引入了PC、FP、SP、SB四个伪
|
|||||||
|
|
||||||
MOV指令是最重要的机器指令,它不仅仅用于在寄存器和内存之间传输数据,而且还可以用于处理数据的扩展和截断操作。
|
MOV指令是最重要的机器指令,它不仅仅用于在寄存器和内存之间传输数据,而且还可以用于处理数据的扩展和截断操作。
|
||||||
|
|
||||||
最简单是忽略符号位的数据传输操作,不同的1、2、4和8字节宽度有不同的指令:
|
最简单是忽略符号位的数据传输操作386和AMD64指令一样,不同的1、2、4和8字节宽度有不同的指令:
|
||||||
|
|
||||||
|
| Data Type | 386/AMD64 | Comment |
|
||||||
|
| --------- | ----------- | ------------- |
|
||||||
|
| [1]byte | MOVB | B => Byte |
|
||||||
|
| [2]byte | MOVW | W => Word |
|
||||||
|
| [4]byte | MOVL | L => Long |
|
||||||
|
| [8]byte | MOVQ | Q => Quadword |
|
||||||
|
|
||||||
| Data Type | 386 | AMD64 | Comment |
|
但是当数据宽度和寄存器的宽度不同又需要处理符号位时,386和AMD64有各自不同的指令:
|
||||||
| --------- | ------- | ------- | ------------- |
|
|
||||||
| [1]byte | MOVB | MOVB | B => Byte |
|
|
||||||
| [2]byte | MOVW | MOVW | W => Word |
|
|
||||||
| [4]byte | MOVL | MOVL | L => Long |
|
|
||||||
| [8]byte | MOVQ | MOVQ | Q => Quadword |
|
|
||||||
|
|
||||||
但是当数据宽度和寄存器的宽度不同又需要处理符号位时,则需要特殊的指令:
|
|
||||||
|
|
||||||
| Data Type | 386 | AMD64 | Comment |
|
| Data Type | 386 | AMD64 | Comment |
|
||||||
| --------- | ------- | ------- | ------------- |
|
| --------- | ------- | ------- | ------------- |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user