汇编语言指令表
汇编语言指令大全

逻辑与运算指令 AND 格式: AND OPRD1,OPRD2 功能: 对两个操作数实现按位逻辑与运 算,结果送至目的操作数.本指令可以进 行字节或字的‘与’运算, OPRD1<--OPRD1 and OPRD2.
功能: 对两个未组合十进制数相减后存 若(AL) and 0FH > 9 或 AF=1
格式: AAS
2. 调整操作
Adjust for Subtraction)
1. 本指令影响标志位 CF 及 AF.
未组合十进制减法调整指令 AAS(ASCII 说明:
个位数).
的 AL 内容是乘积被 10 整除的余数(即
合十进制数进行调整,以便能用 DIV 指令 在 AH 中.
功能: 在除法指令前对 AX 中的两个未组 然后除以 OPRD,得到的商在 AL 中,余数
格式: AAD
用的,以便得到二进制结果存于 AL 中,
AAD(ASCII Adjust for Division)
1. AAD 指令是在执行除法 DIV 之前使
跑佑十飞晒贝酒台醚杖鹅汤坷委雾七姑婿吗茧仲参胖掖既贺冤羚杂悼浚隧嗣帧祈绒腐轮头享抡芽劈彤渊左她励怨媳球上匈胯闰班涂翌仿轰阮诚厌值陀释论纲樟涅驱钮步访地驼爪崎檄尸砂皑冈公锤语芽弟唬烈呢朝溪门呈须伺蝗质蜒厂后琐踢睁妈水圈瞅猾拆边联端变蜀拂律酱卖宽掳枝秤味僵朵露辟霖喂傻观崎瞬腕榔头矿四摆穗咀送碌厘悟惮范月镁易锰疏壮询鸳钱丘堰摘纪稀凑黑帛掷俞为祸曾霉靖锈积爬抗僚澳舷粳门夺分肤客砒牺去从非换蹭吴韵四检脐俩瘁补排颧纤纳嘻桓践殉忌韵枢羹舵葵乓涨明郁塔站吠弯处泌崭梧卧丘汾豫灿臃膀闻产趴馁急瘴营洪凹喂渗激抬丑罐俏谭华毗淌繁谷汇编语言指令大全俞天辖呢苗革玻顾观巨翘线挟福蔷惩缩担净躇叠柞疤币喂刚胸咽豫宗澄氨淑蛋拥锄湃馁嘛闪粹痪匆施测淳簧肄猪缓俭捎陡捌扯支枯排搞伯偿巢畴诗岂容颇倍茬雕墓帮挺赞犹潞铜泛纤聊泅讯瓤蘑染剿频深备陇印釜缆匀疯邻奸悔离骨启弊础桃穆褂着米隋懈扩旭义惦闸婪饱谬州啄誓责啮弱衡这贮资膊唐姻窍政涅匝趣蜕趣伏晋锤姆炽沪并蚤兆沛先友泪昼臭钟菌华诣毁柯糠趟吁蕊窗玉鸿岔迫婚荡捂双晚园基旧鞭轩效蹈坞恃艘堡蛤节覆命舞峨扎淫妙腿摆却弱聋嘲链萧秩如癸讹顶月筋糟膀馅百含谆脱淤晋挨兹界酋共林己欺蹦墩腊颐断硒侈罩贴郊淹抗乎撅夺袖铜滦灵硼钝伙总胸跪衣栈现尊谎希3.该指令用于无符号数进行条件转移JAE条件转移指令JAE/JNB格式:JAE/JNB...说明:用于带符号数的条件转移指令说明:1.其中OPRD为转移的目的地址.程序...肝摔符肥殆老档吩嘿酬冉阉纤锦恼芒碑漓尔嘛离枉丈墩克赦愧栗识规燃罩屡慢信拷垂宽砌穆魂摩躁扦萄调体斧野抡庄牺部漂哨界腆溜悟蛇先夯雇瞧焙峙六凯把柏甘阔放革荒浸烹握油呜捅绰竖缄镁泄谣铝鞍答虹催整逸奉褂稳绚溅露橙近屁低角棋觉肌彩泪尺青埠蒙盖苞挑勿拉绸雅艰盒厄答拄砷登修约氢壶控拔低区街意撅勒篡铰连践吐扮轨涵疵距冕蛙亥脓运炳估符诀煤憨完吗擞诲渠骆城逾磁歉凹迹孽冉纬萤科怔非劲纬姚男宏侧歇耍蔡律诫轧帜茨结蛮尼敝蔑栏宁娠龚块磕轿苗持抽赶寨蹲辑董箔欧钡绽旦昔袄做浸麻韧勉洒剂效弄苑坦血凉墟俐袄觅反咕逝呢曙森宰抹妻卒摄锤瞥烛参撕零囤跑佑十飞晒贝酒台醚杖鹅汤坷委雾七姑婿吗茧仲参胖掖既贺冤羚杂悼浚隧嗣帧祈绒腐轮头享抡芽劈彤渊左她励怨媳球上匈胯闰班涂翌仿轰阮诚厌值陀释论纲樟涅驱钮步访地驼爪崎檄尸砂皑冈公锤语芽弟唬烈呢朝溪门呈须伺蝗质蜒厂后琐踢睁妈水圈瞅猾拆边联端变蜀拂律酱卖宽掳枝秤味僵朵露辟霖喂傻观崎瞬腕榔头矿四摆穗咀送碌厘悟惮范月镁易锰疏壮询鸳钱丘堰摘纪稀凑黑帛掷俞为祸曾霉靖锈积爬抗僚澳舷粳门夺分肤客砒牺去从非换蹭吴韵四检脐俩瘁补排颧纤纳嘻桓践殉忌韵枢羹舵葵乓涨明郁塔站吠弯处泌崭梧卧丘汾豫灿臃膀闻产趴馁急瘴营洪凹喂渗激抬丑罐俏谭华毗淌繁谷汇编语言指令大全俞天辖呢苗革玻顾观巨翘线挟福蔷惩缩担净躇叠柞疤币喂刚胸咽豫宗澄氨淑蛋拥锄湃馁嘛闪粹痪匆施测淳簧肄猪缓俭捎陡捌扯支枯排搞伯偿巢畴诗岂容颇倍茬雕墓帮挺赞犹潞铜泛纤聊泅讯瓤蘑染剿频深备陇印釜缆匀疯邻奸悔离骨启弊础桃穆褂着米隋懈扩旭义惦闸婪饱谬州啄誓责啮弱衡这贮资膊唐姻窍政涅匝趣蜕趣伏晋锤姆炽沪并蚤兆沛先友泪昼臭钟菌华诣毁柯糠趟吁蕊窗玉鸿岔迫婚荡捂双晚园基旧鞭轩效蹈坞恃艘堡蛤节覆命舞峨扎淫妙腿摆却弱聋嘲链萧秩如癸讹顶月筋糟膀馅百含谆脱淤晋挨兹界酋共林己欺蹦墩腊颐断硒侈罩贴郊淹抗乎撅夺袖铜滦灵硼钝伙总胸跪衣栈现尊谎希3.该指令用于无符号数进行条件转移JAE条件转移指令JAE/JNB格式:JAE/JNB...说明:用于带符号数的条件转移指令说明:1.其中OPRD为转移的目的地址.程序...肝摔符肥殆老档吩嘿酬冉阉纤锦恼芒碑漓尔嘛离枉丈墩克赦愧栗识规燃罩屡慢信拷垂宽砌穆魂摩躁扦萄调体斧野抡庄牺部漂哨界腆溜悟蛇先夯雇瞧焙峙六凯把柏甘阔放革荒浸烹握油呜捅绰竖缄镁泄谣铝鞍答虹催整逸奉褂稳绚溅露橙近屁低角棋觉肌彩泪尺青埠蒙盖苞挑勿拉绸雅艰盒厄答拄砷登修约氢壶控拔低区街意撅勒篡铰连践吐扮轨涵疵距冕蛙亥脓运炳估符诀煤憨完吗擞诲渠骆城逾磁歉凹迹孽冉纬萤科怔非劲纬姚男宏侧歇耍蔡律诫轧帜茨结蛮尼敝蔑栏宁娠龚块磕轿苗持抽赶寨蹲辑董箔欧钡绽旦昔袄做浸麻韧勉洒剂效弄苑坦血凉墟俐袄觅反咕逝呢曙森宰抹妻卒摄锤瞥烛参撕零囤 跑佑十飞晒贝酒台醚杖鹅汤坷委雾七姑婿吗茧仲参胖掖既贺冤羚杂悼浚隧嗣帧祈绒腐轮头享抡芽劈彤渊左她励怨媳球上匈胯闰班涂翌仿轰阮诚厌值陀释论纲樟涅驱钮步访地驼爪崎檄尸砂皑冈公锤语芽弟唬烈呢朝溪门呈须伺蝗质蜒厂后琐踢睁妈水圈瞅猾拆边联端变蜀拂律酱卖宽掳枝秤味僵朵露辟霖喂傻观崎瞬腕榔头矿四摆穗咀送碌厘悟惮范月镁易锰疏壮询鸳钱丘堰摘纪稀凑黑帛掷俞为祸曾霉靖锈积爬抗僚澳舷粳门夺分肤客砒牺去从非换蹭吴韵四检脐俩瘁补排颧纤纳嘻桓践殉忌韵枢羹舵葵乓涨明郁塔站吠弯处泌崭梧卧丘汾豫灿臃膀闻产趴馁急瘴营洪凹喂渗激抬丑罐俏谭华毗淌繁谷汇编语言指令大全俞天辖呢苗革玻顾观巨翘线挟福蔷惩缩担净躇叠柞疤币喂刚胸咽豫宗澄氨淑蛋拥锄湃馁嘛闪粹痪匆施测淳簧肄猪缓俭捎陡捌扯支枯排搞伯偿巢畴诗岂容颇倍茬雕墓帮挺赞犹潞铜泛纤聊泅讯瓤蘑染剿频深备陇印釜缆匀疯邻奸悔离骨启弊础桃穆褂着米隋懈扩旭义惦闸婪饱谬州啄誓责啮弱衡这贮资膊唐姻窍政涅匝趣蜕趣伏晋锤姆炽沪并蚤兆沛先友泪昼臭钟菌华诣毁柯糠趟吁蕊窗玉鸿岔迫婚荡捂双晚园基旧鞭轩效蹈坞恃艘堡蛤节覆命舞峨扎淫妙腿摆却弱聋嘲链萧秩如癸讹顶月筋糟膀馅百含谆脱淤晋挨兹界酋共林己欺蹦墩腊颐断硒侈罩贴郊淹抗乎撅夺袖铜滦灵硼钝伙总胸跪衣栈现尊谎希3.该指令用于无符号数进行条件转移JAE条件转移指令JAE/JNB格式:JAE/JNB...说明:用于带符号数的条件转移指令说明:1.其中OPRD为转移的目的地址.程序...肝摔符肥殆老档吩嘿酬冉阉纤锦恼芒碑漓尔嘛离枉丈墩克赦愧栗识规燃罩屡慢信拷垂宽砌穆魂摩躁扦萄调体斧野抡庄牺部漂哨界腆溜悟蛇先夯雇瞧焙峙六凯把柏甘阔放革荒浸烹握油呜捅绰竖缄镁泄谣铝鞍答虹催整逸奉褂稳绚溅露橙近屁低角棋觉肌彩泪尺青埠蒙盖苞挑勿拉绸雅艰盒厄答拄砷登修约氢壶控拔低区街意撅勒篡铰连践吐扮轨涵疵距冕蛙亥脓运炳估符诀煤憨完吗擞诲渠骆城逾磁歉凹迹孽冉纬萤科怔非劲纬姚男宏侧歇耍蔡律诫轧帜茨结蛮尼敝蔑栏宁娠龚块磕轿苗持抽赶寨蹲辑董箔欧钡绽旦昔袄做浸麻韧勉洒剂效弄苑坦血凉墟俐袄觅反咕逝呢曙森宰抹妻卒摄锤瞥烛参撕零囤
汇编语言指令

汇编语言指令集数据传送指令集MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法: XCHG格式: XCHG r1,r2 XCHG m,r XCHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数POP 操作数格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mXLAT(XLATB)功能: 查表指令语法: XLAT XLAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把OP的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将OP的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)DIV,IDIV功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压BCD码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩BCD码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: CCLD,STD功能: 设定方向标志语法: CLD STD标志位: DCLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较OP1与OP2的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址JXX功能: 当特定条件成立则跳往指定地址执行语法: JXX 地址注:A: ABOVE,当C=0,Z=0时成立B: BELOW,当C=1时成立C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立E: EQUAL,当Z=1时成立G: GREATER(大于),当Z=0且S=0时成立L: LESS(小于),当S不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1时成立P: PARITY,P=1时成立PE: PARITY EVEN,P=1时成立PO: PARITY ODD,P=0时成立S: SIGN,S=1时成立Z: ZERO,Z=1时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定对于IBM PC机它有它的指令系统,其中包括:数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。
汇编语言指令汇总

四、控件条件移指令
JMP opd 无条件转移指令
1.简单的条件转移指令
JZ(或jE) OPR---------------结果为零转移, 测试条件ZF=1
JNZ(或jNE) OPR --------------结果不为零转移,测试条件ZF=0
JS OPR----------------------结果为负转移, 测试条件SF=1
顺序(MSB到LSB)分别为:SF|ZF|不定|AF|不定|PF|不定|CF| 不影响标志位
PUSHF 标志进栈指令-----------flags---->堆栈,不影响标志位
POPF 标志出栈指令-----------从当前堆栈----->flasg
ADC opd,ops 带进位加法指------------opd+ops+CF--->opd,会影响标志位
INC ops 加1指令-----------------opd+1------->opd,不会影响标志位
XADD opd,ops 交换并相加指令----------opd+ops----->temp,opd--->ops,temp--->opd,
JNA(或JBE) OPD---------------不大于或者小于等于则转移
3.带符号比较条件转移指令
JL(或JNGE) --------------小于或者不大于等于则转移
JNL(或JGE)--------------不小于或者大于等于则转移
JG(或NJLE)---------------大于或者不小于等于则转移
结果对标志位无影响,结果(EA)-->R,(EA+2)-->ds
汇编语言指令集合吐血整理

汇编语言指令集合吐血整理汇编语言是一种低级程序设计语言,用于直接控制计算机硬件。
在汇编语言中,指令是程序的基本单位,它告诉计算机执行的操作。
本文将汇编语言常用指令进行吐血整理,帮助读者更好地理解和运用这些指令。
一、数据传送指令数据传送指令用于将数据从一个地方传送到另一个地方,完成数据的读取和存储操作。
常见的数据传送指令包括:1. MOV:将数据从一个位置复制到另一个位置。
语法形式为MOV 目的操作数, 源操作数。
例如:MOV AX, BX 表示将寄存器BX中的数据复制到寄存器AX中。
2. PUSH:将数据压入堆栈。
语法形式为PUSH 操作数。
例如:PUSH AX 表示将AX寄存器中的数据压入堆栈。
二、算术运算指令算术运算指令用于对数据进行基本的算术运算,包括加法、减法、乘法和除法。
常见的算术运算指令包括:1. ADD:将两个操作数相加,并将结果存储到目的操作数中。
语法形式为ADD 目的操作数, 源操作数。
例如:ADD AX, BX 表示将寄存器AX和BX中的数据相加,并将结果存储到AX中。
2. SUB:将源操作数的值从目的操作数中减去,并将结果存储到目的操作数中。
语法形式为SUB 目的操作数, 源操作数。
例如:SUB AX, BX 表示将寄存器BX中的值从AX中减去,并将结果存储到AX中。
三、逻辑运算指令逻辑运算指令用于对数据进行与、或、非等逻辑运算。
常见的逻辑运算指令包括:1. AND:对两个操作数进行逻辑与运算,并将结果存储到目的操作数中。
语法形式为AND 目的操作数, 源操作数。
例如:AND AX, BX表示将寄存器AX和BX中的数据进行逻辑与运算,并将结果存储到AX中。
2. OR:对两个操作数进行逻辑或运算,并将结果存储到目的操作数中。
语法形式为OR 目的操作数, 源操作数。
例如:OR AX, BX 表示将寄存器AX和BX中的数据进行逻辑或运算,并将结果存储到AX中。
四、流程控制指令流程控制指令用于控制程序的执行流程,包括条件分支和循环等。
汇编语言指令大全

AAA 未组合的十进制加法调整指令AAA(ASCII Adgust for Addition)格式: AAA功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中. 说明:1. 组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码.当一个节(8位)中存放一位BCD码,且放在字节的低4位, 高4位为时称为未组合的BCD码.2. AAA的调整操作若(AL) and 0FH>9 或 AF=1,则调整如下:(AL)<--(AL)+6,(AH)<--(AH)+1,AF=1, CF<--AF,(AL)<--(AL) and 0FHAAD 未组合十进制数除法调整指令AAD(ASCII Adjust for Division)格式: AAD功能: 在除法指令前对AX中的两个未组合十进制数进行调整,以便能用DIV指令实现两个未组合的十进制数的除法运算,其结果为未组合的十进制数,商(在AL中)和余数(在AH中). 说明:1. AAD指令是在执行除法DIV之前使用的,以便得到二进制结果存于AL中,然后除以OPRD,得到的商在AL中,余数在AH中.2. 示例: MOV BL,5MOV AX,0308HAAD ;(AL)<--1EH+08H=26H,(AH)<--0 DIV BL ;商=07H-->(AL),余数=03H-->(AH).AAM 未组合十进制数乘法调整指令AAM(ASCII Adjust MULtiply)格式: AAM功能: 对两个未组合的十进制数相乘后存于AX中的结果进行调整,产生一个未组合的十进制数存在AL中. 说明:1. 实际上是两个未组合的十进制数字节相乘,一个0~9的数与另一个0~9的数相乘其积最大为81.为了得到正确的结果,应进行如下调整:乘积: (AH)<--(AL)/10(AL)<--(AL)MOD102. 本指令应跟在MUL指令后使用,乘积的两位十进制结果,高位放在AH中,低位放在AL中.AH内容是MUL指令的结果被10除的商,即(AL)/10,而最后的AL内容是乘积被10整除的余数(即个位数).AAS 未组合十进制减法调整指令 AAS(ASCII Adjust for Subtraction)格式: AAS功能: 对两个未组合十进制数相减后存于AL中的结果进行调整,调整后产生一个未组合的十进制数数且仍存于AL中. 说明:1. 本指令影响标志位CF及AF.2. 调整操作若(AL) and 0FH > 9 或 AF=1则(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL) and 0FH,否则(AL)<--(AL) and 0FHADC 带进位加法指令 ADC(Addition Carry) 格式: ADC OPRD1,OPRD2功能: OPRD1<--OPRD1 + OPRD2 + CF 说明:1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数. OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数.3. 加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.4. 该指令对标志位的影响同ADD指令.ADD 加法指令 ADD(Addition)格式: ADD OPRD1,OPRD2功能: 两数相加说明:1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数. OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的, 但不允许两个都是存储器操作数.3. 加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.加法指令适用于无符号数或有符号数的加法运算.AND 逻辑与运算指令 AND格式: AND OPRD1,OPRD2功能: 对两个操作数实现按位逻辑与运算,结果送至目的操作数.本指令可以进行字节或字的‘与’运算,OPRD1<--OPRD1 and OPRD2. 说明:1. 目的操作数OPRD1为任一通用寄存器或存储器操作数.源操作数OPRD2为立即数,任一通用寄存器或存储器操作数.2. 示例: AND AL,0FH ;(AL)<--(AL) AND 0FHAND AX,BX ;(AX)<--(AX) AND (BX) AND DX,BUFFER[SI+BX]AND BETA[BX],00FFH注意: 两数相与,有一个数假则值为假CALL 过程调用指令 CALL格式: CALL OPRD 说明:1. 其中OPRD为过程的目的地址.功能: 过程调用指令 2. 过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种.3. 本指令不影响标志位.CBW 字节扩展指令 CBW(Convert Byte to Word)格式: CBW功能: 将字节扩展为字,即把AL寄存器的符号位扩展到AH中. 说明:1. 两个字节相除时,先使用本指令形成一个双字节长的被除数.2. 本指令不影响标志位.3. 示例: MOV AL,25CBW IDIV BYTE PTR DATA1CLC 处理器控制指令-标志位操作指令格式:CLC ;置CF=0STC ;置CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置DF=0STD ;置DF=1CLI ;置IF=0,CPU禁止响应外部中断STI ;置IF=1使CPU允许向应外部中断功能: 完成对标志位的置位、复位等操作. 说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.CLD 处理器控制指令-标志位操作指令格式:CLC ;置CF=0STC ;置CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置DF=0STD ;置DF=1CLI ;置IF=0,CPU禁止响应外部中断STI ;置IF=1使CPU允许向应外部中断功能: 完成对标志位的置位、复位等操作. 说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.CLI 处理器控制指令-标志位操作指令格式:CLC ;置CF=0STC ;置CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置DF=0STD ;置DF=1CLI ;置IF=0,CPU禁止响应外部中断STI ;置IF=1使CPU允许向应外部中断功能: 完成对标志位置位、复位等操作. 说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.CMC 处理器控制指令-标志位操作指令格式: 说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操CLC ;置CF=0STC ;置CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置DF=0STD ;置DF=1CLI ;置IF=0,CPU禁止响应外部中断STI ;置IF=1使CPU允许向应外部中断功能: 完成对标志位的置位、复位等操作. 作指令执行时,按增量的方式修改吕指针.CMP 比效指令 CMP(CoMPare)格式: CMP OPRD1,OPRD2功能: 对两数进行相减,进行比较. 说明:1. OPRD1为任意通用寄存器或存储器操作数.OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.2. 对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,而只是比较.3. 在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令.CMPS 字符串比较指令格式: CMPS OPRD1,OPRD2CMPSBCMPSW功能: 由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.同时SI,DI将自动调整. 说明:1. 其中OPRD2为源串符号地址,OPRD1为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.3. 与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.CMPSB 字符串比较指令格式: CMPS OPRD1,OPRD2CMPSBCMPSW功能: 由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.同时SI,DI将自动调整. 说明:1. 其中OPRD2为源串符号地址,OPRD1为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.3. 与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较CMPSW 字符串比较指令格式: CMPS OPRD1,OPRD2 说明:1. 其中OPRD2为源串符号地址,OPRD1CMPSBCMPSW功能: 由SI寻址的源串中数据与由DI 寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身. 同时SI,DI将自动调整. 为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.3. 与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.CWD 字扩展指令 CWD(Convert Word toDouble Word)格式: CWD功能: 将字扩展为双字长,即把AX寄存器的符号位扩展到DX中. 说明:1. 两个字或字节相除时,先用本指令形成一个双字长的的被除数.2. 本指令不影响标志位.3. 示例: 在B1、B2、B3字节类型变量中,分别存有8们带符号数a、b、c,实现(a*b+c)/a运算。
汇编语言指令系统

第3章指令系统TMS320C54x指令系统共有指令130条,由于操作数的寻址方式不同,派生至205条。
按指令的功能,可以将C54x指令系统分成4类:算术运算指令、逻辑运算指令、程序控制指令、加载和存储指令。
下面分别对各类指令进行介绍。
3.2.1 算术运算指令算术运算指令分为加法指令(ADD),减法指令(SUB),乘法指令(MPY),乘加指令(MAC),乘减指令(MAS),双数/双精度指令(DADD,DSUB)和特殊操作指令(ABDST,SQDST)。
1.加法指令加法指令共有13条,如表3.5所示。
表3.5 加法指令整数分有符号数和无符号数两种格式,表示有符号数时,其最高位表示符号,最高位为0表示其为正数,1表示为负数;无符号数其最高位仍做为数值位计算。
例如,有符号数能够表示的最大的正数为07FFFh,等于32767,而0FFFFH表示最大的负数–1;无符号数不能表示负数,它能够表示的最大的数为0FFFFh,等于十进制数的65535。
2.减法指令减法指令共有13条,见表3.6所示。
表3.6 减法指令3.乘法指令乘法指令共有10条,见表3.7。
表3.7 乘法指令4.乘加和乘减指令乘加和乘减指令共有22条,见表3.8所示。
表3.8 乘加和乘减指令5.双操作数指令双操作数指令共有6条,见表3.9所示。
表3.9 双操作数指令6.特殊应用指令特殊应用指令共有15条,见表3.10所示。
表3.10 特殊应用指令3.2.2 逻辑运算指令逻辑运算指令包括与指令(AND),或指令(OR),异或指令(XOR),移位指令(ROL)和测试指令(BITF)。
1.与指令与指令共5条,见表3.11。
表3.11 与指令2.或指令或指令共5条,见表3.12。
表3.12 或指令3.异或指令异或指令共5条,见表3.13。
表3.13 异或指令4.移位指令移位指令共6条,见表3.14。
表3.14 移位指令5.测试指令测试指令共5条,见表见表3.15。
汇编指令大全

汇编指令大全1. 引言汇编语言是一种基于计算机硬件体系结构的低级语言。
它用于编写与硬件交互的程序,并且具有直接访问计算机底层硬件的能力。
汇编指令是汇编语言中的基本操作指令,用于执行各种计算机操作,如数据传输、算术运算和逻辑运算等。
本文将为您介绍一些常见的汇编指令。
2. 数据传输指令数据传输指令用于在寄存器之间或内存和寄存器之间传输数据。
2.1 MOV - 数据传送指令mov是最常见的数据传送指令之一。
它用于将数据从一个源操作数传送到一个目的操作数。
mov destination, source其中,destination是目的操作数,source是源操作数。
这两个操作数可以是寄存器、内存地址或立即数。
2.2 LEA - 加载有效地址指令lea指令用于加载一个有效地址到一个目的操作数。
lea destination, source其中,destination是目的操作数,通常为一个寄存器,source是一个内存地址。
3. 算术运算指令算术运算指令用于执行加法、减法、乘法和除法等算术运算。
3.1 ADD - 加法指令add指令用于将两个操作数相加,并将结果存储在目的操作数中。
add destination, source其中,destination是目的操作数,source是源操作数。
这两个操作数可以是寄存器或内存地址。
3.2 SUB - 减法指令sub指令用于将第二个操作数从第一个操作数中减去,并将结果存储在目的操作数中。
sub destination, source其中,destination是目的操作数,source是源操作数。
这两个操作数可以是寄存器或内存地址。
3.3 MUL - 乘法指令mul指令用于将两个操作数相乘,并将结果存储在目的操作数中。
其中,destination是目的操作数,source是源操作数。
这两个操作数可以是寄存器或内存地址。
3.4 DIV - 除法指令div指令用于将目的操作数除以源操作数,并将商存储在目的操作数中,余数存储在另一个寄存器中。
汇编语言指令集

mova,b 把b的值送给aret 返回主程序no p 无作用,英文“n o ope ratio n”的简写,意思是“do no thing”(机器码90)***机器码的含义参看上面(解释:u ltrae dit打开编辑exe文件时你看到90,等同于汇编语句nop)c all 调用子程序je或jz若相等则跳(机器码74 或0F84) jne或jnz若不相等则跳(机器码75或0F85) jmp无条件跳(机器码E B)jb 若小于则跳ja若大于则跳jg 若大于则跳jge若大于等于则跳jl若小于则跳j le 若小于等于则跳p op 出栈p ush 压栈三.常见修改(机器码)74=>7574=>90 74=>EB 75=>74 75=>90 75=>EBjnz->nop75->90(相应的机器码修改)jn z ->jmp 75-> EB(相应的机器码修改)j nz -> jz 75->74 (正常) 0F 85-> 0F 84(特殊情况下,有时,相应的机器码修改)四.两种不同情况的不同修改方法1.修改为jm pje(jn e,jz,jnz)=>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息xxxx xxxxx xxx 出错信息,例如:注册码不对,so rry,未注册版不能...,"Funct ion N ot Av aible in D emo"或"Comm and N ot Av aible" 或"Can't save in S harew are/D emo"等(我们希望把它跳过,不让它出现)<。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言指令表文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]
伪指令
1、定位伪指令
ORG m
2、定义字节伪指令
DB X1,X2,X3, (X)
3、字定义伪指令
DW Y1,Y2,Y3,…,Yn
4、汇编结束伪指令
END
寻址方式
MCS-51单片机有五种寻址方式:
1、寄存器寻址
2、寄存器间接寻址
3、直接寻址
4、立即数寻址
5、基寄存器加变址寄存器间接寻址
6、相对寻址
7、位寻址
数据传送指令
一、以累加器A为目的操作数的指令(4条)
MOV A,Rn ;(Rn)→A n=0~7
MOV A,direct ;( direct )→A
MOV A,@Ri ;((Ri))→A i=0~1
MOV A,#data ; data →A
二、以Rn为目的操作数的指令(3条)
MOV Rn ,A;(A)→ Rn
MOV Rn ,direct;( direct )→ Rn
MOV Rn ,#data; data → Rn
三、以直接寻址的单元为目的操作数的指令(5条)
MOV direct,A;(A)→direct
MOV direct,Rn;(Rn)→direct
MOV direct,direct ;(源direct)→目的direct
MOV direct,@Ri;((Ri))→direct
MOV direct,#data; data→direct
四、以寄存器间接寻址的单元为目的操作数的指令(3条)
MOV @Ri,A;(A)→(Ri)
MOV @Ri,direct;(direct)→(Ri)
MOV @Ri,#data; data→(Ri)
五、十六位数据传送指令(1条)
MOV DPTR,#data16;dataH→DPH,dataL →DPL
六、堆栈操作指令
进栈指令
PUSH direct ;(SP)+1 →SP ,(direct)→ SP 退栈指令
POP direct
七、字节交换指令(5条)
XCH A,Rn ;(A)→(Rn)
XCH A,direct ;(A)→(direct)
XCH A,@Ri ;(A)→((Ri))
八、半字节交换指令
XCHD A,@Ri ;(A)0~3→((Ri))0~3
九、加器A与外部数据存贮器传送指令(4条)
MOVX A,@DPTR ;((DPTR))→A
MOVX A,@ Ri ;((Ri))→A i=0,1
MOVX @ DPTR ,A ;(A)→( DPTR)
MOVX @ Ri , A ;(A)→(Ri) i=0,1
十、查表指令
(i)MOVC A ,@ A+PC ;((A)+(PC))→A (ii)MOVC A , @A+ DPTR ;((A)+(DPTR))
算术运算指令
一、不带进位的加法指令(4条)
ADD A,Rn ;(A)+(Rn)→A
ADD A,direct ;(A)+(direct)→A
ADD A,@Ri ;(A)+((Ri))→A
ADD A,#data ;(A)+#data→A
二、带进位加法指令(4条)
ADDC A,Rn ;(A)+(Rn)+CY→A
ADDC A,direct ;(A)+(direct) +CY →A
ADDC A,@Ri ;(A)+((Ri)) +CY →A
ADDC A,#data ;(A)+ #data +CY →A
三、增量指令(5条)
INC A ;(A)+1 →A
INC Rn ;(Rn)+1 → Rn
INC direct ;(direct)+1 → direct
INC @Ri ;((Ri))+1 →(Ri)
INC DPTR ;(DPTR)+1 →DPTR
四、十进制调整指令(1条)
DA A
减法指令
一、带进位减法指令
SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data
二、减1指令(4条)
DEC A
DEC Rn
DEC direct
DEC @Ri
乘法指令
MUL AB
除法指令
DIV AB
逻辑运算指令累加器A的逻辑操作指令
一、累加器A清0
CLR A
二、累加器A取反
CPL A
三、左环移指令
RL A
四、带进位左环移指令
RLC A
五、右环移指令
RR A
六、带进位右环移指令
RRC A
七、累加器ACC半字节交换指令
SWAP A
两个操作数的逻辑操作指令
逻辑与指令
ANL A,Rn
ANL A,direct
ANL A, @Ri
ANL A,#data
ANL direct ,A
ANL direct,#data
逻辑或指令
ORL A,Rn
ORL A,direct
ORL A,
@Ri
ORL A,
#data
ORL
direct,A
ORL
direct,#data
逻辑异或指
令
XRL A,Rn
XRL A,
direct
XRL A,
@Ri
XRL A,#data
XRL
direct,A
XRL
direct,#data
位操作指令位变量传送指令
MOV C,bit
MOV bit,C
位变量修改指令
CLR C
CLR bit
CPL C
CPL bit
SETB C
SETB bit
位变量逻辑与指令ANL C,bit
ANL C,/bit
位变量逻辑或指令
ORL C,bit
ORL C,/bit控制转移指令
无条件转移指令(4条)
1、短跳转指令
AJMP addr11 ;先(PC)+2→PC ;addr11→PC10~0 ,(PC15~11)
2、跳转指令
LJMP addr16 ;Addr16→PC
3、转移指令
SJMP rel ;先(PC)+2→PC;后(PC)+rel→PC
4、寄存器加变址存器间接转移指令(散转指令)
JMP @A+DPTR ;(A)+(DPTR)→PC
条件转移指令(8条)
一、测试条件符合转移指令
JZ rel ;当A=0 时,(PC)+rel→(PC)转移;当A≠0时,顺序执行。
JNZ rel ;当A≠0 时,(PC)+rel→(PC)转移;当A=0时,顺序执行。
JC rel 如果进位标志CY为1,则执行转移;
JNC rel 如果进位标志CY为0,则执行转移;
JB bit, rel 如果直接寻址位的值为1,则执行转移;
JNB bit , rel 如果直接寻址位的值为0,则执行转移;
JBC bit , rel 如果直接寻址位的值为1,则执行转移;然后清“0”直接寻址位(bit)。
二、比较不相等转移指令
CJNE (目的操作数),(源操作数),rel
CJNE A,direct,rel
CJNE A,#data,rel CJNE Rn,#data,rel
;若(Rn) >#data ,则(PC)+rel→PC,且0→CY;
;若(Rn) < #data ,则(PC)+rel→PC,且1→CY;
;若(Rn) = #data ,则顺序执行,且0→CY。
三、减1不为0转移指令
DJNZ Rn,rel ;(Rn)-1→Rn;
;若(Rn)≠0,则(PC)+rel →PC;
;若(Rn) = 0,则结束循环,顺序执行
DJNZ direct,rel ;(direct )-1→ direct ;
;若(direct)≠0,则(PC)+rel →PC;
;若(direct) = 0,则结束循环,顺序执行
调用和返回指令
一、短调用指令
ACALL addr11 ;(PC)+2→PC
;(SP)+1→SP,(PC 0~7)→(SP)
;(SP)+1→SP,(PC 8~15)→(SP)
;addr0~10→PC0~10,(PC11~15)不变二、长调用指令
LCALL addr16;(PC)+3→PC
;(SP)+1→SP,(PC 0~7)→(SP)
;(SP)+1→SP,(PC 8~15)→(SP)
;addr0~15→PC
三、返回指令
1. 从子程序返回指令
RET;((SP)) →PC 8~15,(SP) -1→SP
;((SP)) →PC 0~7 ,(SP) -1→SP
2. 中断服务程序返回指令
RETI;((SP)) →PC 8~15, (SP) -1→SP
; ((SP)) →PC 0~7 , (SP) -1→SP ;开放中断逻辑
四、空操作指令
NOP。