首页IT科技单片机汇编指令延时1s(汇编指令)

单片机汇编指令延时1s(汇编指令)

时间2025-06-15 23:04:06分类IT科技浏览5931
导读:add add 目的,源 ; 加法指令,结果放入目操作数,操作数的长度必须相同...

add

add 目的,源 ; 加法指令                ,结果放入目操作数                    ,操作数的长度必须相同

adc

adc 目的,源 ; 带进位加法      ,目的=目的+源+CF

and

and 目的,源 ; 逻辑按位与 指令            ,结果放到目的操作数            。 ; 影响标志位OF            、SF                      、ZF        、PF和CF                      。

call

call s ; 使call s下一条指令的 CS:IP 入栈(段内转移只有 IP 入栈)                     ,跳转到标号处

cmp

cmp des, sou ; des - sou 不改变 源/目的 的值

注:如果比较的是两个无符号数         ,则零标志位和进位标志位表示的两个操作数之间的关系如右表所示:

CMP结果 ZF CF 目的操作数 < 源操作数 0 1 目的操作数 > 源操作数 0 0 目的操作数 = 源操作数 1 0

注:如果比较的是两个有符号数        ,则符号标志位         、零标志位和溢出标志位表示的两个操作数之间的关系如右表所示:

CMP结果 标志位 目的操作数 < 源操作数 SF ≠ OF 目的操作数 > 源操作数 SF=OF 目的操作数 = 源操作数 ZF=1

cmov

指令 同义名 条件 描述 cmovne cmovnz -ZF ZF不为0时                      ,进行传送

dec

dec 目的 ; 减一(自减)指令        。

inc

inc 目的 ; 加一(自增)指令            ,和add 目的,1效果相同    ,inc的机器码更短                       ,               ,执行快

jmp

无条件跳转 jmp 标号 jmp short 标号 ; 段内短转移,位移范围(-128~127) jmp near ptr 标号 ; 段内近转移                    ,位移范围(-32768~32767) jmp far ptr 标号 ; 段间转移 jmp word ptr 内存单元地址 ; 段内转移 jmp dword ptr 内存单元地址 ; 段间转移

jne                     、jnz

jne s ; 条件转移指令         。当ZF = 0                   ,转至标号处执行                     。 jnz s ; 条件转移指令            。当ZF != 0   ,转至标号处执行      。

lea

lea 目的,源 ; 取有效地址指令                ,获取的是源的内存单元的地址(偏移地址)不是数据 ; 源操作数必须是存储器操作数(ds:[0123H])或者标号

loop

s: add ax, ax loop s ; cx寄存器不为0                    ,则跳转到s;s标号 ; 执行时      ,先(cx)=(cx)-1            ,再判断cx是否为0

mov

mov ax, 0 ; 把 0 复制到 ax mov byte ptr xx:[x], 0 ; 8 位数传送 ptr – pointer (指针)缩写                    。 mov word ptr xx:[x], 0 ; 16 位数传送

movzx

movzx 16位寄存器, 8位寄存器 ; 把8位寄存器的值复制给16位寄存器                     ,前面用0填充 ; 只适用于无符号整数

mul

乘法指令 mul 寄存器或内存单元 ; 两个相乘的数         ,位数必须是相同的        ,如果是8为其中一个默认在AL                      ,结果存放在AX ; 如果是16位其中一个默认在AX            ,结果高位存放在DX    ,低位存放在AX

not

not 目的 ; 逻辑非 指令;结果放到目的操作数                。 ; 不影响标志位   。

offset

mov ax,offset 标号 ; 取标号的偏移地址 ; offset是操作符不是汇编指令                       ,由编译器执行                   。

or

or 目的,源 ; 逻辑按位或 指令;结果放到目的操作数                    。 ; 影响标志位OF            、SF      、ZF                    、PF和CF。

push

push ax ; 将ax寄存器的数据压入栈中 ; 执行时               ,先SP - 2,随后写入数据                    ,高位对高位                   ,低位对低位.

pop

pop ax ; 从栈中取出数据存入ax ; 执行时   ,先取出数据写入ax寄存器                ,随后SP + 2

注:如果寄存器是32位的则SP ± 4               。(push/pop 8位寄存器 报错)

ret/retf

ret 相当于 pop ip retf 相当于 pop ip pop cs

sub

sub 目的,源 ; 减法指令                    ,结果放入目操作数                       。

sbb

sbb 目的,源 ; 带借位减法      ,目的=目的-源-CF

test

test ax, bx ; 将两个操作数进行 逻辑与 运算            ,并根据运算结果设置相关的标志位    。 ; 但是两个操作数不会被改变            。运算结果在设置过相关标记位后会被丢弃                      。 ; TEST AX,BX 与AND AX,BX命令有相同效果                     ,只是Test指令不改变AX和BX的内容         , ; 而AND指令会把结果保存到AX中        。 ; 影响标志:C,O,P,Z,S(其中C与O两个标志会被设为0) Intel的技术手册 TEMP ← SRC1 AND SRC2; // 逻辑与的结果赋值给TEMP SF ← MSB(TEMP); // 最高位赋值给 SF 标志位 IF TEMP = 0 THEN ZF ← 1; // TEMP == 0 ZF 标志位设置1 ELSE ZF ← 0; // TEMP != 0 ZF 标志位设置0 FI: PF ← BitwiseXNOR(TEMP[0:7]); // PE = 将TEMP的低8位        ,从第0位开始                      ,逐位取同或         。也就是第0位与第1位的同或结果            ,去和第2位同或    ,结果再去和第3位同或....直到和第7位同或                     。 CF ← 0; // CF 和 OF 标志位设置0 OF ← 0; (* AF is undefined *) // AF 不确定

xchg

xchg ax,bx ; 交换两个寄存器的数据                       ,两个操作数的类型要相同               ,内存和内存之间不能使用

xor

xor 目的,源 ; 逻辑按位异或 指令;结果放到目的操作数            。 ; 影响标志位OF                、SF   、ZF                   、PF和CF      。

标志寄存器

ZF(零标志位)

用于记录相关指令执行后的结果是否为0

为0: ZF = 1 不为0: ZF = 0

影响ZF的指令:add                    、sub、mul               、div                       、inc    、or            、and等(大多数是运算指令)

PF(奇偶标志位)

用于记录相关指令执行后的结果所有bit位中1的数量是否为偶数

偶数: PF = 1 奇数: PF = 0

SF(符号标志位)

用于记录相关指令执行后的结果是否为负

负: SF = 1 非负 :SF = 0

CF(进位标志位)

一般情况下,在进行无符号运算时                    ,记录运算结果的最高有效位向更高位的进位值(或借位值)

发生进位(借位):CF = 1 未发生进位(借位): SF = 0

OF(溢出标志位)

一般情况下                   ,在进行有符号运算时   ,记录运算结果是否发生溢出

发生溢出:OF = 1 未发生溢出: OF = 0

未完待续                ,持续更新中...

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
伪原创可以申请原创吗(伪原创文章编辑的必要性) dcm文件是什么意思怎么查看(ctdvddet.exe是什么软件的文件 ctdvddet进程是安全的吗)