欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编基础知识框架

程序员文章站 2022-04-12 23:31:50
...
  • 末尾的思维导图由【幕布】生成

汇编语言


(一) 运算符号

1.算数运算符

2.逻辑运算符

3.关系运算符

4.分析算符

分析算符可以把标志符号分解成它的三个属性值或取得它所定义的存储空间的大小

  • SEG算符—运算结果为标号所处段的段基址
  • OFFSET算符—运算结果为标志符号的偏移地址
  • TYPE算符—运算结果为标号的类型值
  • SIZE算符—伪指令为操作数分配的字节个数
  • LENGTH算符—与标号类型相联系的数据个数

5.组合算符

用来建立或临时改变标志符号的类型或存储器操作数的存储单元类型

  • PTR算符
  • THIS算符

6.字节分离算符LOW和HIGH

7.记录专用算符

  • MASK算符
  • WIDTH算符

(二) 伪指令(汇编指令)

1.符号定义伪指令

  • 给自定义符号定义一个数值或定义为其他符号名
  • 等价伪指令EQU(EQUATE)
  • 等号伪指令‘=’

2.数据定义伪指令

  • 定义一个存储单元的符号名,并初始化该单元或由该单元开始的若干连续单元
  • 定义字节伪指令DB(define byte)
  • 定义字伪指令DW(define word)
  • 定义双字伪指令DD(define double word)
  • 定义四字伪指令DQ(define quarter word)
  • 定义十字伪指令DT(define ten byte)

3.段定义伪指令

汇编时的代码段、数据段、附加段和堆栈段都是逻辑段,是由段定义伪指令来定义的,经汇编连接后转换为真正的内存地址

  • 段首说明伪指令 SEGMENT(segment)
  • 段结束伪指令 ENDS(ends)
  • 段假定伪指令 ASSUME(assume)
  • 代码定位伪指令 ORG(org)

4.方式选择伪指令

5.其他伪指令

  • EVEN 伪指令
  • .RADIX 伪指令
  • NAME 伪指令
  • END 伪指令
  • 列表的命令

顺序结构程序

(一) 数据传送指令

  • MOV 传送
  • PUSH 进栈
  • POP 出栈
  • XCHG 交换
  • XLAT 转换表
  • LEA 取有效地址
  • LDS 加载数据段寄存器
  • LES 加载附加段寄存器
  • LAHF 取标志
  • SAHF 存标志
  • PUSHF 标志进栈
  • POPF 标志出栈

(二) 算术运算指令

1.加法运算指令

  • ADD 加法
  • ADC 带进位加法
  • INC 增1

2.减法运算指令

  • SUB 减法
  • SBB 带借位减法
  • DEC 减1
  • NEG 取补(取负)
  • CMP 比较

3.乘法运算指令

  • MUL 无符号乘法
  • IMUL 带符号乘法

4.除法运算指令

  • DIV 无符号除法
  • IDIV 带符号除法
  • CBW 字节转换为字
  • CWD 字转换为双字

(三) 逻辑操作指令

  • NOT 取反
  • AND 逻辑与
  • OR 或
  • XOR 异或
  • TEST 测试

(四) 移位操作指令

  • SHL 逻辑左移
  • SHR 逻辑右移
  • SAL 算数左移
  • SAR 算术右移
  • ROL 循环左移
  • ROR 循环右移
  • RCL 带进位循环左移
  • RCR 带进位循环右移

分支结构程序

(一) 基于单个标志位转移的指令

  • 测试进位标志CF—JC
  • 测试零标志ZF—JZ
  • 测试溢出标志OF—JO
  • 测试符号标志SF—JS
  • 测试奇偶标志PF—JP

(二) 基于两数之间大小关系转移的指令

1.无符号数(above/below)

  • 大于—JA
  • 大于等于—JAE
  • 小于—JB
  • 小于等于—JBE

2.带符号数(great/less)

  • 大于—JG
  • 大于等于—JGE
  • 小于—JL
  • 小于等于—JLE

3.相等

  • 等于—JE
  • 不等于—JNE

循环结构程序

(一) 循环控制指令

CX为循环计数器 , 指令与循环入口距离-126~129之间​

  • LOOP—条件控制
  • LOOPE/LOOPZ-条件重复控制 , 不等退出
  • LOOPNE/LOOPNZ-条件重复控制 , 相等退出

(二) 循环程序的控制方法

  • 正计数法
  • 倒计数法

(三) 数据串操作指令

  • MOVS/MOVSB/MOVSW-传送
  • CMPS—数据串比较
  • SCAS—字符串搜索
  • LODS—取字符串(字符串加载)
  • STOS—存字符串
  • REP—重复cx次
  • REPZ/REPE—条件重复

DOS功能调用

是指汇编程序通过INT 21H软中断来调用DOS内部子程序完成特性的一系列操作的一种方法
调用前将功能号送AH寄存器,同时根据功能号规定的要求准备好所有的参数,然后执行INT 21H

常用的DOS功能调用

①.“1号功能”—从键盘读入一个字符

MOV AH, 01H
INT 21H

②.“2号功能”—显示器输出一个字符

MOV DL, 字符
MOV AH, 02H
INT 21H

③.“9号功能”—显示器输出一串字符

DS 指向字符串所在的段 一般不必显式地装入 DX 指向字符串串首的位移 >
例如:

MOV DX,OFFSET HM 
MOV AH,09H 
INT 21H

汇编基础知识框架

相关标签: 汇编