Intel 汇编语言程序设计 (第五版)

记录关键词,留给自己复习的钥匙

3.5.3EQU伪指令

当定义任何非整数的值得时候,非常有用。PI EQU <301415926>

name EQU expression

name EQU symbol

name EQU

3.5.4TEXTEQU伪指令

可用来创建文本宏

name TEXTEQU

name TEXTEQU textmacro

name TEXTEQU %constExpr

EQU不可再程序中重定义,TEXTEQU可在程序中重定义

--实地址模式程序设计,为MS-DOS设计的程序必须是运行于实地址模式下的16位应用。实地址模式==16位;保护模式==32.

--程序包含代码段、数据段、堆栈段;代码段包含可执行指令;堆栈段用于存储程序参数、局部变量和返回地址;数据段用于存放变量。

--MASM内部数据类型:

BYTE和SBYTE定义8位的变量。

WORD和SWORD定义16位的变量。

DWORD和SDWORD定义32位的变量。

QWORD和TBYTE定义8字节和10字节的变量。

REAL4,REAL8和REAL10定义4字节、8字节和10字节的实数变量。

--DUP操作符使用一个常量表达式作为计数器重复分配存储空间。

--当前地址计数器($)操作符可用于地址计算表达式中。

--操作数类型:立即操作数(immediate),寄存器操作数(register),内存操作数(memory)。指令使用内存操作数时实际上使用的是操作数的地址

--4.1.4MOV指令:MOV destination source

遵循规则:

两个操作数的尺寸必须一致。

两个操作数不能同时为内存操作数。

目的操作数不能是CS,EIP和IP。

立即数不能直接送至段寄存器。

--MOVZX指令:零扩展传送。适用于无符号整数

--MOVSZ指令:符号扩展传送。只用于有符号整数

--LAHF指令:将EFLAGS寄存器的低字节复制到AH寄存器。

--SAHF指令:复制AH寄存器的值至EFLAGS寄存器的低字节。

--XCHG指令:交换两个操作数的内容。

--INC和DEC指令:加1或减1.

--ADD和SUB指令:加法和减法指令。

--NEG指令:求相反数。

--标志:

  进位标志CF表示无符号整数运算是否发生了溢出。

       溢出标志OF用于表示有符号整数运算是否发生了溢出。

  零标志ZF用于表示运算结果是否为零。

  符号标志SF用于表示运算结果是否为负。

  奇偶标志PF用于表示目的操作数的最低有效字节内1的个数是否为偶数。

  辅助进位标志AF在运算结果的最低有效字节的第三位向高位产生进位1时值位

--CPU是如何检测溢出的:运算结果最高有效位向高位的进位值(CF的值)与到最高有效位的进位值异或,其结果放到溢出标志中。

 

 

 

你可能感兴趣的:(天下技术杂谈)