From ec36b35c867d9fa450108994f90a38407a5d464a Mon Sep 17 00:00:00 2001 From: chai2010 Date: Sat, 23 Jun 2018 11:24:09 +0800 Subject: [PATCH] =?UTF-8?q?ch3-02:=20=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch3-asm/ch3-02-arch.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/ch3-asm/ch3-02-arch.md b/ch3-asm/ch3-02-arch.md index db177c7..803238f 100644 --- a/ch3-asm/ch3-02-arch.md +++ b/ch3-asm/ch3-02-arch.md @@ -159,17 +159,16 @@ Go汇编为了简化汇编代码的编写,引入了PC、FP、SP、SB四个伪 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 | -| --------- | ------- | ------- | ------------- | -| [1]byte | MOVB | MOVB | B => Byte | -| [2]byte | MOVW | MOVW | W => Word | -| [4]byte | MOVL | MOVL | L => Long | -| [8]byte | MOVQ | MOVQ | Q => Quadword | - -但是当数据宽度和寄存器的宽度不同又需要处理符号位时,则需要特殊的指令: +但是当数据宽度和寄存器的宽度不同又需要处理符号位时,386和AMD64有各自不同的指令: | Data Type | 386 | AMD64 | Comment | | --------- | ------- | ------- | ------------- |