汇编-加减法指令
算术运算、逻辑运算与移位操作指令
加法运算类指令
加法指令
普通加法指令 影响 个标志位
带进位加法指令 影响 个标志位
加 指令 影响 个标志位 不会影响
使用 之前要先把 清零
的操作数不可以是段寄存器和立即数
求内存数据段中 和 为首的 两个 字节数之和,并将结果写入 为首的区域中
按照字节运算
LEA SI, M1
LEA DI, M2
MOV CX, 20
CLC ; 使CF = 0
NEXT: MOV AL, [SI]
ADC [DI], AL
INC SI
INC DI
DEC CX
JNZ NEXT
HLT
按照字运算
LEA SI, M1
LEA DI, M2
MOV CX, 10
CLC ; 使CF = 0
NEXT: MOV AX, [SI]
ADC [DI], AX
ADD SI, 2
ADD DI, 2
DEC CX
JNZ NEXT
HLT
减法运算类指令
对标志位的影响与 相同
对标志位的影响与 相同 对操作数的要求及对标志位的影响与 相同
对操作数的要求及对标志位的影响与 相同
应用程序例
; 程序功能: 延时(定时)
MOV BL, 2
NEXT1: MOV CX, 0FFFFH ; 0是为了让计算机识别这是一个16进制数字
NEXT2: DEC CX
JNZ NEXT2 ;ZF=0 转NEXT2
DEC BL
JNZ NEXT1 ; ZF=0 转NEXT1
HLT ;暂停执行
指令
因此这个指令又叫求补指令
执行指令之后,一般情况下都会使得 为 ,除非给定的操作数为零才会使 为
当指定的操作数的值为 或者 ,则执行 指令后 结果不变,但 置一,其他情况下 均置零
指令
操作
指令执行的结果不影响目标操作数,仅影响标志位
常用于比较两个数字的大小
两个无符号数的比较
若 则
若 则
若 则
两个带符号数的比较
两个数字的大小由 和 共同决定
和 状态相同
和 状态不同
指令示例
LEA BX, MAX LEA SI, BUF MOV CL, 20 MOV AL, [SI] NEXT : INC SI CMP AL, [SI] JNC GOON ; CF=0转移 XCHG [SI], AL GOON: DEC CL JNZ NEXT MOV [BX], AL HLT
程序功能 在 个数字中寻找最大值并放入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了