汇编语言
2018-12-09 15:29:36 20 举报
AI智能生成
汇编语言
作者其他创作
大纲/内容
学习资料
《汇编语言》第3版
https://www.cnblogs.com/bestsheng/p/5659932.html 【环境搭建】
https://blog.csdn.net/weixin_39793360/article/details/80697066 【汇编指令】
基础笔记
简介
CPU二进制指令助记符合集
代码结构
寄存器
通用寄存器
段寄存器
变址寄存器
标志寄存器
定义变量、分配空间
dw (define word)定义字型数据
db (define byte)定义字节型数据
dd (define double word) 定义双字型数据
dup 重复定义数据
word ptr 定义字型单元
byte ptr 定义字节单元
描述单元长度的标号
流程控制
转移指令
JMP 跳转指令
条件转移指令 JZ、JNZ、JC、JNC、JO、JNO、JS、JNS
JCXZ CX=0 则跳转
循环指令
LOOP
LOOPE ZF=1时执行循环
LOOPNE ZF=0时执行循环
子程序
CALL 近调用
LCALL 远调用
RET 结束子程序执行,修改IP内容实现近转移
RETF 结束子程序执行,修改CS、IP内容实现远转移
中断指令
INT 引发一个N号中断过程
IRET 中断返回指令
中断编码
0号 除法溢出中断
1号 单步中断,TF=1时
9号 键盘输入处理
13H号 对磁盘进行读写
16H号 从键盘缓冲区读取一个键盘输入
21号 DOS中断
9号功能, 显示内存区的字符串直到遇到 $ 字符
4C00H功能, 返回dos界面
常用指令
说明
DST, SRC 目的操作数,源操作数
MEM, REG 内存地址, 寄存器
常规指令
输入输出
IN 输入指令
OUT 输出指令
基本运算
MOV 赋值指令
XCHG 数据交换指令
ADD 加法指令
ADC 两数相加,再加上CF标志位
INC 递增指令
SUB 减法指令
SBB 两数相减,再减去CF标志位
DEC 递减指令
NEG 求补指令,REG中各位取反再加1
CMP 比较指令,不保存结果只保存标志位
MUL 无符号数乘法
IMUL 有符号数乘法
DIV 无符号数除法
IDIV 有符号数除法
堆栈指令
PUSH
POP
逻辑指令
AND 与逻辑
TEST 与逻辑运算,只影响PSW
OR 或逻辑
NOT 非逻辑
XOR 异或
SHL 逻辑左移
SHR 逻辑右移
SAL 算数左移,与SHL一样
SAR 算数右移,最高位不变
ROL 循环左移,最高位移到最低位,并最高位进入CF
ROR 循环右移, 最低位移到最高位,并最低位进入CF
RCL 带进位循环左移,最高位进入CF,CF进入最低位
RCR 带进位循环右移
串指令
DF 标志位 为1时, DI,SI 递减, 反之递增
MOVS 数据赋值指令
CMPS 字符串比较指令
LODS 数据加载指令
STOS 与LODS相反
REP 循环指令,循环CX次
REPZ 类似REP, ZF=0 也会退出
REPNZ 类似REP, ZF=1 也会退出
取址指令
LEA 获取存储单元偏移地址
LDS 获取存储单元段地址、偏移地址
LES 类似LDS,段地址存放到ES中
标志位相关
PUSHF 将PSW的内容进栈
POPF
LAHF 将PSW低八位放到AH中
SAHF
标志位操作
注意事项
汇编16进制数据不能以字母开头
ds 寄存器赋值只能通过其他寄存器
si di 寄存器不能分为两个高低8位使用
随便记记
实践应用
0 条评论
下一页