前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NASM汇编_nasm标准

NASM汇编_nasm标准

作者头像
全栈程序员站长
发布2022-09-27 10:49:02
6000
发布2022-09-27 10:49:02
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君

操作指令

MOV dst, src 把src 的内容 复制到 dst中,操作字长由参数字长决定

push 把参数入栈

pop 从栈顶弹出数据,存入给定参数中

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.(在不同模式下面,对应不同的寄存器,如32bit模式,对应32位寄存器)

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. (同上)

cmp arg1, arg2 比较两个参数的大小(arg1 – arg2), 根据结果修改标志位

xchg arg1, arg2 交换两个参数的内容

算术指令

add dst, src 加法,dst = dst + src

sub arg1, arg2 减法,arg1 = arg1 – arg2

字符串指令

DS:SI 源串段寄存器 :源串变址. ES:DI 目标串段寄存器:目标串变址

CX 重复次数计数器. AL/AX 扫描值

SCASB 串扫描. 把AL的内容与目标串作比较(AL – [ES:DI]),比较结果反映在标志位.

LODS 装入串. 把源串中的元素(字或字节)逐一装入AL或AX,EAX中. ( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )

STOS 保存串. LODS的逆过程。把AL或AX或EAX中的数据装入目标串中。(STOSB, STOSW, STOSD)

REP 当CX/ECX<>0时重复

REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复

REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.

REPC 当CF=1且CX/ECX<>0时重复.

REPNC 当CF=0且CX/ECX<>0时重复

程序转移指令

1. 无条件转移指令

JMP 无条件转移指令

CALL 过程调用

RET/RETF过程返回.

2. 条件转移指令

JA/JNBE 大于时转移.

JAE/JNB 大于或等于转移.

JB/JNAE 小于转移.

JBE/JNA 小于或等于转移.

以上四条,测试无符号整数运算的结果(标志C和Z).

JG/JNLE 大于转移.

JGE/JNL 大于或等于转移.

JL/JNGE 小于转移.

JLE/JNG 小于或等于转移.

以上四条,测试带符号整数运算的结果(标志S,O和Z).

JE/JZ 等于转移.

JNE/JNZ 不等于时转移.

JC 有进位时转移.

JNC 无进位时转移.

JNO 不溢出时转移.

JNP/JPO 奇偶性为奇数时转移.

JNS 符号位为 “0” 时转移.

JO 溢出转移.

JP/JPE 奇偶性为偶数时转移.

JS 符号位为 “1” 时转移.

3. 循环控制指令(短转移)

LOOP CX不为零时循环.

LOOPE/LOOPZ CX不为零且标志Z=1时循环.

LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.

JCXZ CX为零时转移.

JECXZ ECX为零时转移.

4. 中断指令

INT 中断指令

INTO 溢出中断

IRET 中断返回

处理机控制指令

标志处理指令 CLC(进位位置0指令)

CMC(进位位求反指令)

STC(进位位置为1指令)

CLD(方向标志置1指令)

STD(方向标志位置1指令)

CLI(中断标志置0指令)

STI(中断标志置1指令)

NOP(无操作)

HLT(停机)

WAIT(等待)

ESC(换码)

LOCK(封锁)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179251.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档