电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

电子发烧友网>控制/MCU>汇编语言详解

汇编语言详解

  A>=B CF=0 || ZF=1 SF^OF=0 || ZF=1
  A<=B CF=1 || ZF=1 SF^OF=1 || ZF=1
  MUL ( unsigned MULtiple ) 无符号数乘法指令
  MUL SRC //Byte/Word .
  执行操作:Byte => AX= AL *src //字节运算时目的操作数用AL, 乘积放在AX中
  Word => DX=AX *src //字运算时目的操作数用AX, DX存放乘积的高位字, AX放乘积的低位字
  1.目的数必须是累加器 AX 或AL,指令中不需写出
  2. 源操作数SRC可以是通用寄存器和各种寻址方式的存储器操作数, 而绝对不允许是立即数或段寄存器.
  IMUL (sIgned MULtiple) 有符号数乘法指令
  IMUL SRC //与MUL指令相同,但必须是带符号数
  DIV ( unsigned DIVide) 无符号数除法指令
  DIV SRC //Byte/Word 其中: SRC的规定同乘法指令MUL
  执行操作:Byte => AX / src //字节运算时目的操作数在AX中,结果的商在AL中 ,余数中AH中
  Word=> DX,AX /src //字运算时目的操作数在DX高位字和AX低位字中,结果的商在AX中 ,余数在DX中
  存储器操作数必须指明数据类型:BYTE PTR src 或 WORD PTR src
  IDIV (sIgned DIVied) 有符号数除法指令
  IDIV SRC //Byte/Word 与DIV指令相同,但必须是带符号数
  CBW (Convert Byte to Word) 字节转换为字指令
  CBW
  执行操作: AL中的符号位(D7)扩展到8位AH中,若AL中的D7=0,则AH=00H,若AL中的D7=1,则AH=FFH.
  CWD (Convert Word to Double word) 字转换为双字指令
  CWD
  执行操作: AX中的符号位(D15)扩展到16位DX中,若AX中的D15=0,则DX=0000H,若AX中的D15=1,则DX=FFFFH
  十进制调整指令
  当计算机进行计算时,必须先把十进制数转换为二进制数,再进行二进制数运算,最后将结果又转换为十进制数输出.
  在计算机中,可用4位二进制数表示一位十进制数,这种代码称为BCD ( Binary Coded Decimal ).
  BCD码又称8421码,在PC机中,BCD码可用压缩的BCD码和非压缩的BCD码两种格式表示.
  压缩的BCD码用4位二进制数表示一个十制数,整个十进数形式为一个顺序的以4位为一组的数串.
  非压缩的BCD码以8位为一组表示一个十进制数,8位中的低4位表示8421的BCD码,而高4位则没有意义.
  压缩的BCD码调整指令
  DAA (Decimal Adjust for Addition) 加法的十进制调整指令
  DAA
  执行操作:执行之前必须先执行ADD或ADC指令,加法指令必须把两个压缩的BCD码相加,并把结果存话在AL寄存器中.
  DAS (Decimal Adjust for Subtraction) 减法的十进制调整指令
  DAS
  执行操作:执行之前必须先执行SUB或SBB指令,减法指令必须把两个压缩的BCD码相减,并氢结果存放在AL寄存器中.
  非压缩的BCD码调整指令
  AAA (ASCII Adjust for Addition) 加法的ASCII调整指令
  AAA
  执行操作:执行之前必须先执行ADD或ADC指令,加法指令必须把两个非压缩的BCD码相加,并把结果存话在AL寄存器中.
  AAS (ASCII Adjust for Subtraction) 减法的ASCII调整指令
  AAS
  执行操作:执行之前必须先执行SUB或SBB指令,减法指令必须把两个非压缩的BCD码相减,并氢结果存放在AL寄存器中.
  MOVS ( MOVe String) 串传送指令
  MOVB //字节串传送 DF=0, SI = SI + 1 , DI = DI + 1 ;DF = 1 , SI = SI - 1 , DI = DI - 1
  MOVW //字串传送 DF=0, SI = SI + 2 , DI = DI + 2 ;DF = 1 , SI = SI - 2 , DI = DI - 2
  执行操作:[DI] = [SI] ,将位于DS段的由SI所指出的存储单元的字节或字传送到位于ES段的由DI 所指出的存储单元,再修改SI和DI, 从而指向下一个元素.
  在执行该指令之前,必须预置SI和DI的初值,用STD或CLD设置DF值.
  MOVS DST , SRC //同上,不常用,DST和SRC只是用来用类型检查,并不允许使用其它寻址方式来确定操作数.
  1.目的串必须在附加段中,即必须是ES:[DI]
  2.源串允许使用段跨越前缀来修饰,但偏移地址必须是[SI].
  STOS (STOre into String) 存入串指令
  STOS DST
  STOSB //存放字节串 ( DI ) = AL
  STOSW //存放字串 ( DI ) = AX
  执行品作:把AL或AX中的内容存放由DI指定的附加段的字节或字单元中,并根据DF值修改及数据类型修改DI的内容.
  1.在执行该指令之前,必须把要存入的数据预先存入AX或AL中,必须预置DI的初值.
  2.DI所指向的存储单元只能在附加段中,即必须是ES:[DI]
  LODS ( LOaD from String ) 从串取指令
  LODS SRC
  LODSB //从字节串取 AL=(SI)
  LODSW //从字串取 AX= (SI±1) (SI)
  执行操作:把由SI指定的数据段中字节或字单元的内容送入AL或AX中,并根据DF值及数据类型修改SI的内容.
  1.在执行该指令之前,要取的数据必须在存储器中预先定义(用DB或DW),必须预置SI的初值.
  2.源串允许使用段超越前缀来改变数据存储的段区.
  REP (REPeat)重复操作前缀
  REP String Primitive //其中:String Primitive可为MOVS,STOS或LODS指令
  执行操作:使REP前缀后的串指令重复执行,每执行一次CX=CX-1,直至CX=0时退出REP.
  方向标志设置
  CLD (CLear Direction flag) 清除方向标志指令
  CLD
  执行操作:令DF=0, 其后[SI],[DI]执行增量操作
  STD (SeT Direction flag) 设置方向标志指令
  STD
  执行操作:令DF=1, 其后[SI],[DI]执行减量操作
  CMPS (CoMPare String) 串比较指令
  CMPS SRC , DST
  CMPSB //字节串比较 (SI)-(DI)
  CMPSW //字串比较 (SI+1)(SI) - (DI+1)(DI)
  执行操作:把由SI指向的数据段中的一个字节或字与由DI指向的附加段中的一个字节或字相减,不保留结果,只根据结果置标志位.
  SCAS (SCAn String ) 串扫描指令
  SCAS DST
  SCASB
  SCASW
  执行操作:把AX或AL的内容与由DI指向的在附加段中的一个字节或字相减,不保留结果,根据结果置标志位.
  AND, OR , XOR 和 TEST都是双字节操作指令,操作数的寻址方式的规定与算术运算指令相同.
  NOT是单字节操作指令,不允许使用立即数.
  逻辑运算均是按位进行操作,真值表如下:
  AND (位与&) OR ( 位或| ) XOR ( 位异或^ )
  1 & 1 = 1 1 | 1 = 1 1 ^ 1 = 0
  1 & 0 = 0 1 | 0 = 1 1 ^ 0 = 1
  0 & 1 = 0 0 | 1 = 1 0 ^ 1 = 1
  0 & 0 = 0 0 | 0 = 0 0 ^ 0 = 0
  A:逻辑运算指令
  AND (and) 逻辑与指令
  AND DST , SRC //Byte/Word
  执行操作:dst = dst & src
  1.AND指令执行后,将使CF=0,OF=0,AF位无定义,指令执行结果影响SF,ZF和PF标志位.
  2.AND指令典型用法A:用于屏蔽某些位,即使某些位为0.
  屏蔽AL的高4位:即将高4位和0000B相与,低4位和1111B相与
  MOV AL , 39H //AL= 0011 1001B[39H]
  ADD AL , 0FH // AL= 0000 1001B[09H] 即0011 1001B[39H] & 0000 1111B[0FH] = 0000 1001B[09H]
  3.AND指令典型用法B:取出某一位的值(见TEST)
  OR (or) 逻辑或指令
  OR DST , SRC //Byte/Word
  执行操作:dst = dst | src
  1.OR指令执行后,将使CF=0, OF=0, AF位无定义,指令执行结果影响SF, ZF和PF标志位.
  2.常用于将某些位置1.
  将AL的第5位置1:
  MOV AL , 4AH // AL=0100 1010B[4AH]
  OR AL , 10H // AL=0101 1010B[5AH] 即0100 1010B[4AH] | 0001 0000B[10H] =0101 1010B [5AH]
  XOR (eXclusive OR) 逻辑异或指令
  XOR DST , SRC //Byte/Word
  执行操作:dst = dst ^ src
  1.XOR指令常用于使某个操作数清零,同时使CF=0,清除进位标志.
  2.XOR指令使某些位维持不变则与 '0' 相异或,若要使某些位取反则与 '1'相异或.
  将AL的高4位维持不变,低4位取反:
  MOV AL, B8H //AL=1011 1000B[B8H]
  XOR AL, 0FH //AL=1011 0111B[B7H] 即1011 1000B[B8H] ^ 0000 1111[0FH]=1011 0111B[B7H]
  测试某一个操作数是否与另一确定操作数相等:
  XOR AX , 042EH
  JZ .... //如果AX==042EH, 则ZF=TRUE(1), 执行JZ...
  NOT (not) 逻辑非指令
  NOT OPR //Byte/Word
  执行操作:opr = ~opr // ~ 01100101 [65H] =10011010 [9AH]
  1.操作数不能使用立即数或段寄存器操作数,可使用通用寄存器和各种方式寻址的存储器操作数.
  2.NOT指令不影响任何标志位。
  将AL各位取反:
  MOV AL,65H //AL=0110 0101B[65H]
  NOT AL //AL=1001 1010B[9AH] 即 ~ 0110 0101B[65H]=1001 1010B[9AH]
  TEST (test) 指令
  TEST OPR1 , OPR2 //Byte/Word
  执行操作:opr1 & opr2
  1.两个操作数相与的结果不保存,结果影响标志位PF,SF和ZF,使CF=0, OF=0,而AF位无定义.
  2.TEST指令常用于在不改变原有的操作数的情况下,检测某一位或某几位的条件是否满足.只要令用来测试的操作数对应检测位为1,其余位为0,相与后判断零标志ZF值的真假.
  检测某位是否为1:
  令用来测试的操作数对应检测位为1,其余位为0,TEST指令后,若该位为1则 JNZ...
  TEST AL , 0000 00001B //测试AL最低位是否为1:: 令用来测试的操作数对应检测位为1,其余位为0,执行TEST指令
  JNZ THER //最低位若为1, 则ZF=FALSE(0), 执行JNZ THER, 否则执行下一条指令.
  或者:先对操作数求反,令用来测试的操作数对应检测位为1,其余位为0,TEST指令后,若该位为1则JZ...
  MOV DL , AL //将AL 传送到DL,主要是不要影响AL的值. 以下测试AL的b2位是否为1
  NOT DL //先对操作数求反
  TEST 0000 0100B //令用来测试的操作数对应检测位为1,其余位为0,执行TEST指令
  JZ THER //若AL的b2位为1,则ZF=TRUE(1), 执行JZ THER
  B:移位指令[所有的移位指令都影响标志位CF、OF、PF、SF和ZF.AF无定义.]
  非循环逻辑移位:把操作数看成无符数来进行移位.
  SHL ( SHift logical Left )逻辑左移指令
  SHL OPR , CNT //Byte/Word
  执行操作:使OPR左移CNT位,并使最低CNT位为全0.
  1.OPR操作数不能使用立即数或段寄存器操作数,可使用通用寄存器和各种方式寻址的存储器操作数.
  2.移位次数由CNT决定.每次将OPR的最高位移出并移到CF,最低位补0.
  MOV CL , 7 //若移位多次, 先预置移位次数CL
  SHL DX , CL //CNT可取1或CL寄存器操作数
  SHR (SHift logical Right) 逻辑右移指令
  SHR OPR , CNT //Byte/Word
  同SHL,每次将OPR的最低位D0移出并移到CF.最高位补0.
  非循环算术移位:将操作数看成有符号数来进行移位.
  SAL (Shift Arithmetic Left) 算术左移指令
  SAL OPR , CNT //Byte/Word
  SAL指令与SHL指令完全相同
  SAR(Shift Arithmetic Right) 算术右移指令
  SAR OPR , CNT //Byte/Word
  SAR指令每次移位时,将最高位移入次高位的同时最高位值不变,最低位D0移出并移到CF.
  循环移位指令
  ROL ( ROtate Left) 循环左移指令
  ROL OPR , CNT //Byte/Word
  每次移位时,最高位移出并同时移到CF和最低位D0.
  ROR (ROtate Right)循环右移指令
  ROR OPR,CNT //Byte/Word
  每次移位时,最低位D0移出并同时移到CF和最高位.
  带进位循环移位指令
  RCL (Rotate Left through Carry)带进位循环左移指令
  RCL OPR,CNT //Byte/Word
  RCR (Rotate Right through Carry)带进位循环右移指令
  RCR OPR ,CNT //Byte/Word
  处理器控制指令
  CLC (CLear Carry) 进位位置0指令
  CLC //执行操作后,CF=0
  CMC (CoMplement Carry) 进位位求反指令
  CMC //执行操作后,CF=!CF
  STC (SeT Carry) 进位位置1指令
  STC //执行操作后,CF=1
  NOP (No Operetion) 无操作指令
  NOP //此指令不执行任何操作,其机器码占一个字节单元
  HLT (HaLT) 停机指令
  HLT
  执行操作后,使机器暂停工作,使处理器CPU处于停机状态,以等待一次外部中断到来,中断结束后,程序继续执行,CPU继续工作.
  JMP ( JuMP ) 无条件转移指令
  名称 格式 执行操作
  段内直接短跳转 JMP SHORT OPR IP=IP+8 位偏移量
  段内直接近转移 JMP NEAR PTR OPR IP=IP+16位偏移量
  段内间接转移 JMP WORD PTR OPR IP=(EA)
  段间直接转移 JMP FAR PTR OPR IP=OPR 偏移地址, CS=OPR 段地址
  段间间接转移 JMP DWORD PTR OPR IP=(EA),CS=(EA+2)
  1.无条件转移到指定的地址去执行从该地址开始的指令.
  2.段内转移是指在同一代码段的范围内进行转移,只需改变IP寄存器内容.
  3.段间转移则要转移到另一个代码段执行程序,此时要改变IP寄存器和CS段寄存器的内容.
  条件转移指令:根据上一条指令所设置的条件码(标志位)来判断测试条件.
  根据五个标志位:ZF、SF、OF、 PF、 CF的两种状态(0 FALSE或1 TRUE)产生10种测试条件.
  Name Flag Flag == TRUE [1] Flag ==FALSE [ 0]
  Zero Falg ZF JE/JZ OPR //结果为零转移 JNE/JNZ OPR //结果不为零转移
  Sign Falg SF JS OPR //结果为负转移 JNS OPR //结果为正转移
  Overflow Flag OF JO OPR //溢出转移 JNO OPR //不溢出转移
  Parity Flag PF JP/JPE OPR //结果为偶转移 JNP/JPO OPR //结果为奇转移
  Carry Flag CF JC OPR //有进位转移 JNC OPR //无进位转移
  两个数比较:
  情况 指令 满足条件 指令 满足条件
  A < B JC CF==1 JL SF^OF==1 && ZF==0
  A ≥ B JNC CF==0 JNL SF^OF==0 || ZF==1
  A ≤ B JNA CF==1 || ZF==1 JLG SF^OF==1 || ZF==1
  A > B JA CF==0 && ZF==0 JG SF^OF==0 && ZF==0
  测试CX转移指令
  JCXZ OPR //CX==0时转移
  LOOP(LOOP)循环指令
  LOOP OPR 测试条件:CX ≠ 0 //OPR在程序中实际是个标号
  LOOPZ OPR 测试条件:ZF == 1 && CX ≠ 0
  LOOPNZ OPR 测试条件:ZF == 0 && CX ≠ 0
  执行操作: 先执行CX=CX-1,再检测上面的测试条件,如满足则IP=IP+符号扩展的D8,不满足则退出循环.
  过程调用及返回指令
  CALL (CALL) 过程调用指令
  CALL DST //DST在程序中实际是子程序标号
  执行操作:先将过程的返回地址(即CALL的下一条指令的首地址)存入堆栈,然后转移到过程入口地址执行子程序.
  调用方式 格式 断点保护入栈情况 过程入口地址
  段内直接 CALL NEAR PTR PR1 (SP-1)(SP-2)←IP , CS不进栈 CS值保持不变,IP←DST
  段内间接 CALL WORD PTR (EA) (SP-1)(SP-2)←IP , CS不进栈 CS值保持不变,IP←(EA)
  段间直接 CALL FAR PTR PR1 (SP-1)(SP-2)←CS , (SP-3)(SP-4)←IP IP←DST偏移地址,CS←DST段地址
  段间间接 CALL DWORD PTR (EA) (SP-1)(SP-2)←CS , (SP-3)(SP-4)←IP IP←(EA),CS←(EA+2)
  注:为了表明是段内调用,可使用NEAR PTR属性操作符作说明.
  RET(RETurn)子程序返回指令
  RET
  RET EXP //带立即数返回
  子程序返回指令RET放在子程序末尾,它使子程序在执行完全部任务后返回主程序继续执行被打断后的程序.返回地址在子程序调用时入栈保存的断点地址-IP或IP和CS.

 
关于词语:汇编

  汇编也可以是一个种类的集合,如英语语法汇编,XX科目汇编……等等`
  详细点的指令用法
  一、数据传送指令
  1.通用数据传送指令
  MOV(Move)传送
  PUSH(Push onto the stack)进栈
  POP(Pop from the stack)出栈
  XCHG(Exchange)交换
  .MOV指令
  格式为: MOV DST,SRC
  执行的操作:(DST)<-(SRC)
  .PUSH进栈指令
  格式为:PUSH SRC
  执行的操作:(SP)<-(SP)-2
  ((SP)+1,(SP))<-(SRC)
  .POP出栈指令
  格式为:POP DST
  执行的操作:(DST)<-((SP+1),(SP))
  (SP)<-(SP)+2
  .XCHG 交换指令
  格式为:XCHG OPR1,OPR2
  执行的操作:(OPR1)<-->(OPR2)
  2.累加器专用传送指令
  IN(Input) 输入
  OUT(Output) 输出
  XLAT(Translate) 换码
  这组指令只限于使用累加器AX或AL传送信息.
  .IN 输入指令
  长格式为: IN AL,PORT(字节)
  IN AX,PORT(字)
  执行的操作: (AL)<-(PORT)(字节)
  (AX)<-(PORT+1,PORT)(字)
  短格式为: IN AL,DX(字节)
  IN AX,DX(字)
  执行的操作: AL<-((DX))(字节)
  AX<-((DX)+1,DX)(字)
  .OUT 输出指令
  长格式为: OUT PORT,AL(字节)
  OUT PORT,AX(字)
  执行的操作: (PORT)<-(AL)(字节)
  (PORT+1,PORT)<-(AX)(字)
  短格式为: OUT DX,AL(字节)
  OUT DX,AX(字)
  执行的操作: ((DX))<-(AL)(字节)
  ((DX)+1,(DX))<-AX(字)
  在IBM-PC机里,外部设备最多可有65536个I/O端口,端口(即外设的端口地址)为0000~FFFFH.其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号.所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口.当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用IN或OUT指令来 传送信息.
  .XLAT 换码指令
  格式为: XLAT OPR
  或: XLAT
  执行的操作:(AL)<-((BX)+(AL))
  3.有效地址送寄存器指令
  LEA(Load effective address)有效地址送寄存器
  LDS(Load DS with Pointer)指针送寄存器和DS
  LES(Load ES with Pointer)指针送寄存器和ES
  .LEA 有效地址送寄存器
  格式为: LEA REG,SRC
  执行的操作:(REG)<-SRC
  指令把源操作数的有效地址送到指定的寄存器中.
  .LDS 指针送寄存器和DS指令
  格式为: LDS REG,SRC
  执行的操作:(REG)<-(SRC)
  (DS)<-(SRC+2)
  把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中.该指令常指定SI寄存器.
  .LES 指针送寄存器和ES指令
  格式为: LES REG,SRC
  执行的操作: (REG)<-(SRC)
  (ES)<-(SRC+2)
  把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中.该指令常指定DI寄存器.
  4.标志寄存器传送指令
  LAHF(Load AH with flags)标志送AH
  SAHF(store AH into flags)AH送标志寄存器
  PUSHF(push the flags) 标志进栈
  POPF(pop the flags) 标志出栈
  .LAHF 标志送AH
  格式为: LAHF
  执行的操作:(AH)<-(PWS的低字节)
  .SAHF AH送标志寄存器
  格式为: SAHF
  执行的操作:(PWS的低字节)<-(AH)
  .PUSHF 标志进栈
  格式为: PUSHF
  执行的操作:(SP)<-(SP)-2
  ((SP)+1,(SP))<-(PSW)
  .POPF 标志出栈
  格式为: POPF
  执行的操作:(PWS)<-((SP)+1,(SP))
  (SP)<-(SP+2)
  二、算术指令
  1.加法指令
  ADD(add)加法
  ADC(add with carry)带进位加法
  INC(increment)加1
  .ADD 加法指令
  格式: ADD DST,SRC
  执行的操作:(DST)<-(SRC)+(DST)
  .ADC 带进位加法指令
  格式: ADC DST,SRC
  执行的操作:(DST)<-(SRC)+(DST)+CF
  .ADD 加1指令
  格式: INC OPR
  执行的操作:(OPR)<-(OPR)+1
  2.减法指令
  SUB(subtract)减法
  SBB(subtract with borrow)带借位减法
  DEC(Decrement)减1
  NEG(Negate)求补
  CMP(Compare)比较
  .SUB 减法指令
  格式: SUB DST,SRC
  执行的操作:(DST)<-(DST)-(SRC)
  .SBB 带借位减法指令
  格式: SBB DST,SRC
  执行的操作:(DST)<-(DST)-(SRC)-CF
  .DEC 减1指令
  格式: DEC OPR
  执行的操作:(OPR)<-(OPR)-1
  .NEG 求补指令
  格式: NEG OPR
  执行的操作:(OPR)<- -(OPR)
  .CMP 比较指令
  格式: CMP OPR1,OPR2
  执行的操作:(OPR1)-(OPR2)
  该指令与SUB指令一样执行减法操作,但不保存结果,只是根据结果设置条件标志西半球.
  3.乘法指令
  MUL(Unsigned Multiple)无符号数乘法
  IMUL(Signed Multiple)带符号数乘法
  .MUL 无符号数乘法指令
  格式: MUL SRC
  执行的操作:
  字节操作数:(AX)<-(AL)*(SRC)
  字操作数:(DX,AX)<-(AX)*(SRC)
  .IMUL 带符号数乘法指令
  格式: IMUL SRC
  执行的操作:与MUL相同,但必须是带符号数,而MUL是无符号数.
  4.除法指令
  DIV(Unsigned divide)无符号数除法
  IDIV(Signed divide)带符号数除法
  CBW(Convert byte to word)字节转换为字
  CWD(Contert word to double word)字转换为双字
  .DIV 无符号数除法指令
  格式: DIV SRC
  执行的操作:
  字节操作:(AL)<-(AX)/(SRC)的商
  (AH)<-(AX)/(SRC)的余数
  字操作: (AX)<-(DX,AX)/(SRC)的商
  (AX)<-(DX,AX)/(SRC)的余数
  .IDIV 带符号数除法指令
  格式: DIV SRC
  执行的操作:与DIV相同,但操作数必须是带符号数,商和余数也均为带符号数,且余数的符号与被除数的符号相同.
  .CBW 字节转换为字指令
  格式: CBW
  执行的操作:AL的内容符号扩展到AH.即如果(AL)的最高有效位为0,则(AH)=00;如(AL)的最高有效位为1,则(AH)=0FFH
  .CWD 字转换为双字指令
  格式: CWD
  执行的操作:AX的内容符号扩展到DX.即如(AX)的最高有效位为0,则(DX)=0;否则(DX)=0FFFFH.
  这两条指令都不影响条件码.
  三、逻辑指令
  1.逻辑运算指令
  AND(and) 逻辑与
  OR(or) 逻辑或
  NOT(not) 逻辑非
  XOR(exclusive or)异或
  TEST(test) 测试
  .AND 逻辑与指令
  格式: AND DST,SRC
  执行的操作:(DST)<-(DST)^(SRC)
  .OR 逻辑或指令
  格式: OR DST,SRC
  执行的操作:(DST)<-(DST)V(SRC)
  .NOT 逻辑非指令
  格式: NOT OPR
  执行的操作:(OPR)<-(OPR)
  .XOR 异或指令
  格式: XOR DST,SRC
  执行的操作:(DST)<-(DST)V(SRC)
  .TEST 测试指令
  格式: TEST OPR1,OPR2
  执行的操作:(DST)^(SRC)
  两个操作数相与的结果不保存,只根据其特征置条件码
  2.移位指令
  SHL(shift logical left) 逻辑左移
  SAL(shift arithmetic left) 算术左移
  SHR(shift logical right) 逻辑右移
  SAR(shift arithmetic right) 算术右移
  ROL(Rotate left) 循环左移
  ROR(Rotate right) 循环右移
  RCL(Rotate left through carry) 带进位循环左移
  RCR(Rotate right through carry) 带进位循环右移
  格式: SHL OPR,CNT(其余的类似)
  其中OPR可以是除立即数以外的任何寻址方式.移位次数由CNT决定,CNT可以是1或CL.
  循环移位指令可以改变操作数中所有位的位置;移位指令则常常用来做乘以2除以2操作.其中算术移位指令适用于带符号数运算,SAL用来乘2,SAR用来除以2;而逻辑移位指令则用来无符号数运算,SHL用来乘2,SHR用来除以2.
  四、串处理指令
  1.与REP相配合工作的MOVS,STOS和LODS指令
  .REP重复串操作直到(CX)=0为上
  格式: REP string primitive
  其中String Primitive可为MOVS,LODS或STOS指令
  执行的操作:
  1)如(CX)=0则退出REP,否则往下执行.
  2)(CX)<-(CX)-1
  3)执行其中的串操作
  4)重复1)~3)
  .MOVS 串传送指令
  格式:可有三种
  MOVS DST,SRC
  MOVSB(字节)
  MOVSW(字)
  其中第二、三种格式明确地注明是传送字节或字,第一种格式则应在操作数中表明是字还是字节操作,例如:
  MOVS ES:BYTE PTR[DI],DS:[SI]
  执行的操作:
  1)((DI))<-((SI))
  2)字节操作:
  (SI)<-(SI)+(或-)1,(DI)<-(DI)+(或-)1
  当方向标志DF=0时用+,当方向标志DF=1时用-
  3)字操作:
  (SI)<-(SI)+(或-)2,(DI)<-(DI)+(或-)2
  当方向标志DF=0时用+,当方向标志DF=1时用-
  该指令不影响条件码.
  .CLD(Clear direction flag)该指令使DF=0,在执行串操作指令时可使地址自动增量;
  .STD(Set direction flag)该指令使DF=1,在执行串操作指令时可使地址自动减量.
  .STOS 存入串指令
  格式: STOS DST
  STOSB(字节)
  STOSW(字)
  执行的操作:
  字节操作:((DI))<-(AL),(DI)<-(DI)+-1
  字操作: ((DI))<-(AX),(DI)<-(DI)+-2
  该指令把AL或AX的内容存入由(DI)指定的附加段的某单元中,并根据DF的值及数据类型修改DI的内容,当它与REP联用时,可把AL或AX的内容存入一个长度为(CX)的缓冲区中.
  .LODS 从串取指令
  格式: LODS SRC
  LODSB
  LODSW
  执行的操作:
  字节操作:(AL)<-((SI)),(SI)<-(SI)+-1
  字操作: (AX)<-((SI)),(SI)<-(SI)+-2
  该指令把由(SI)指定的数据段中某单元的内容送到AL或AX中,并根据方向标志及数据类型修改SI的内容.指令允许使用段跨越前缀来指定非数据段的存储区.该指令也不影响条件码.
  一般说来,该指令不和REP联用.有时缓冲区中的一串字符需要逐次取出来测试时,可使用本指令.
  2.与REPE/REPZ和REPNZ/REPNE联合工作的CMPS和SCAS指令
  .REPE/REPZ 当相等/为零时重复串操作
  格式: REPE(或REPZ) String Primitive
  其中String Primitive可为CMPS或SCAS指令.
  执行的操作:
  1)如(CX)=0或ZF=0(即某次比较的结果两个操作数不等)时退出,否则往下执行
  2)(CX)<-(CX)-1
  3)执行其后的串指令
  4)重复1)~3)
  .REPNE/REPNZ 当不相等/不为零时重复串操作
  格式: REPNE(或REPNZ) String Primitive
  其中String Primitive可为CMPS或SCAS指令
  执行的操作:
  除退出条件(CX=0)或ZF=1外,其他操作与REPE完全相同.
  .CMPS 串比较指令
  格式: CMP SRC,DST
  CMPSB
  CMPSW
  执行的操作:
  1)((SI))-((DI))
  2)字节操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1
  字操作: (SI)<-(SI)+-2,(DI)<-(DI)+-2
  指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向的附加段中的一个字(或字节)相减,但不保存结果,只根据结果设置条件码,指令的其它特性和MOVS指令的规定相同.
  .SCAS 串扫描指令
  格式: SCAS DST
  SCASB
  SCASW
  执行的操作:
  字节操作:(AL)-((DI)),(DI)<-(DI)+-1
  字操作: (AL)-((DI)),(DI)<-(DI)+-2
  该指令把AL(或AX)的内容与由(DI)指定的在附加段中的一个字节(或字)进行比较,并不保存结果,只根据结果置条件码.指令的其他特性和MOVS的规定相同.
  五、控制转移指令
  1.无条件转移指令
  .JMP(jmp) 跳转指令
  1)段内直接短转移
  格式:JMP SHORT OPR
  执行的操作:(IP)<-(IP)+8位位移量
  2)段内直接近转移
  格式:JMP NEAR PTR OPR
  执行的操作:(IP)<-(IP)+16位位移量
  3)段内间接转移
  格式:JMP WORD PTR OPR
  执行的操作:(IP)<-(EA)
  4)段间直接(远)转移
  格式:JMP FAR PTR OPR
  执行的操作:(IP)<-OPR的段内偏移地址
  (CS)<-OPR所在段的段地址
  5)段间间接转移
  格式:JMP DWORD PTR OPR
  执行的操作:(IP)<-(EA)
  (CS)<-(EA+2)
  2.条件转移指令
  1)根据单个条件标志的设置情况转移
  .JZ(或JE)(Jump if zero,or equal) 结果为零(或相等)则转移
  格式:JE(或JZ) OPR
  测试条件:ZF=1
  .JNZ(或JNE)(Jump if not zero,or not equal) 结果不为零(或不相等)则转移
  格式:JNZ(或JNE) OPR
  测试条件:ZF=0
  .JS(Jump if sign) 结果为负则转移
  格式: JS OPR
  测试条件:SF=1
  .JNS(Jump if not sign) 结果为正则转移
  格式:JNS OPR
  测试条件:SF=0
  .JO(Jump if overflow) 溢出则转移
  格式: JO OPR
  测试条件:OF=1
  .JNO(Jump if not overflow) 不溢出则转移
  格式: JNO OPR
  测试条件:OF=0
  .JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移
  格式: JP OPR
  测试条件:PF=1
  .JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位为0则转移
  格式: JNP(或JPO) OPR
  测试条件:PF=0
  .JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低于,或者不高于或等于,或进位位为1则转移
  格式:JB(或JNAE,JC) OPR
  测试条件:CF=1
  .JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry) 不低于,或者高于或者等于,或进位位为0则转移
  格式:JNB(或JAE,JNC) OPR
  测试条件:CF=0
  2)比较两个无符号数,并根据比较的结果转移
  .JB(或JNAE,JC)
  格式:同上
  .JNB(或JAE,JNC)
  格式:同上
  .JBE(或JNA)(Jump if below or equal,or not above) 低于或等于,或不高于则转移
  格式:JBE(或JNA) OPR
  测试条件:CFVZF=1
  .JNBE(或JA)(Jump if not below or equal,or above) 不低于或等于,或者高于则转移
  格式:JNBE(或JA) OPR
  测试条件:CFVZF=0
  3)比较两个带符号数,并根据比较的结果转移
  .JL(或LNGE)(Jump if less,or not greater or equal) 小于,或者不大于或者等于则转移
  格式:JL(或JNGE) OPR
  测试条件:SFVOF=1
  .JNL(或JGE)(Jump if not less,or greater or equal)不小于,或者大于或者等于则转移
  格式:JNL(或JGE) OPR
  测试条件:SFVOF=0
  .JLE(或JNG)(Jump if less or equal,or not greater) 小于或等于,或者不大于则转移
  格式:JLE(或JNG) OPR
  测试条件:(SFVOF)VZF=1
  .JNLE(或JG)(Jump if not less or equal,or greater) 不小于或等于,或者大于则转移
  格式:JNLE(或JG) OPR
  测试条件:(SFVOF)VZF=0
  4)测试CX的值为0则转移指令
  .JCXZ(Jump if CX register is zero) CX寄存器的内容为零则转移
  格式:JCXZ OPR
  测试条件:(CX)=0
  注:条件转移全为8位短跳!
  3.循环指令
  .LOOP 循环指令
  格式: LOOP OPR
  测试条件:(CX)<>0
  .LOOPZ/LOOPE 当为零或相等时循环指令
  格式: LOOPZ(或LOOPE) OPR
  测试条件:(CX)<>0且ZF=1
  .LOOPNZ/LOOPNE 当不为零或不相等时循环指令
  格式: LOOPNZ(或LOOPNE) OPR
  测试条件:(CX)<>0且ZF=0
  这三条指令的步骤是:
  1)(CX)<-(CX)-1
  2)检查是否满足测试条件,如满足则(IP)<-(IP)+D8的符号扩充.
  4.子程序
  .CALL调用指令
  .RET返回指令
  5.中断
  .INT指令
  格式: INT TYPE
  或 INT
  执行的操作:(SP)<-(SP)-2
  ((SP)+1,(SP))<-(PSW)
  (SP)<-(SP)-2
  ((SP)+1,(SP))<-(CS)
  (SP)<-(SP)-2
  ((SP)+1,(SP))<-(IP)
  (IP)<-(TYPE*4)
  (CS)<-(TYPE*4+2)
  .INTO 若溢出则中断
  执行的操作:若OF=1则:
  (SP)<-(SP)-2
  ((SP)+1,(SP))<-(PSW)
  (SP)<-(SP)-2
  ((SP)+1,(SP))<-(CS)
  (SP)<-(SP)-2
  ((SP)+1,(SP))<-(IP)
  (IP)<-(10H)
  (CS)<-(12H)
  .IRET 从中断返回指令
  格式: IRET
  执行的操作:(IP)<-((SP)+1,(SP))
  (SP)<-(SP)+2
  (CS)<-((SP)+1,(SP))
  (SP)<-(SP)+2
  (PSW)<-((SP)+1,(SP))
  (SP)<-(SP)+2
  六、处理机控制指令
  1.标志处理指令
  .CLC进位位置0指令(Clear carry)CF<-0
  .CMC进位位求反指令(Complement carry)CF<-CF
  .STC进位位置1指令(Set carry)CF<-1
  .CLD方向标志置0指令(Clear direction)DF<-0
  .STD方向标志置1指令(Set direction)DF<-1
  .CLI中断标志置0指令(Clear interrupt)IF<-0
  .STI中断标志置1指令(Set interrupt)IF<-0
  2.其他处理机控制指令
  NOP(No Opreation) 无操作
  HLT(Halt) 停机
  WAIT(Wait) 等待
  ESC(Escape) 换码
  LOCK(Lock) 封锁
  这些指令可以控制处理机状态.这们都不影响条件码.
  .NOP 无操作指令
  该指令不执行任何操作,其机器码占有一个字节,在调试程序时往往用这条指令占有一定的存储单元,以便在正式运行时用其他指令取代.
  .HLT停机指令
  该指令可使机器暂停工作,使处理机处于停机状态以便等待一次外部中断到来,中断结束后可继续执行下面的程序.
  .WAIT等待指令
  该指令使处理机处于空转状态,它也可以用来等待外部中断的发生,但中断结束后仍返回WAIT指令继续执行.
  .ESC换码指令
  格式ESC mem
  其中mem指出一个存储单元,ESC指令把该存储单元的内容送到数据总线去.当然ESC指令不允许使用立即数和寄存器寻址方式.这条指令在使用协处理机(Coprocessor)执行某些操作时,可从存储器指得指令或操作数.协处理机(如8087)则是为了提高速度而可以选配的硬件.
  .LOCK封锁指令
  该指令是一种前缀,它可与其他指令联合,用来维持总线的锁存信号直到与其联合的指令执行完为止.当CPU与其他处理机协同工作时,该指令可避免破坏有用信息.
收藏

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论

查看更多

相关推荐

汇编语言的结构化设计及其在俄罗斯方块中的应用

为了简化汇编语言的编写过程,本文提出了一种结构化的汇编编程思路,并以基于AT89C51芯片(以下对汇编语言的讨论针对51单片机系统)的俄罗斯方块游戏为例,来展现在51单片机中汇编语言结构化编写的优势。##俄罗斯方块的软件实现方法##实验测试与结果
2014-06-23 10:27:472713

8051汇编语言程序设计举例

成就更好的自己目录3.8 8051汇编语言程序设计举例3.8.1 子程序的设计3.8.2 查表程序设计3.8.3 分支转移程序设计3.8.4 循环程序设计3.8 8051汇编语言程序设计举例 介绍
2021-12-01 08:23:13

汇编语言

汇编语言
2012-06-24 12:33:07

汇编语言

汇编语言怎么实现INTO中断控制LED的按一次亮按一次灭的效果新手求指教~~
2013-04-03 22:25:13

汇编语言

汇编语言怎么实现INTO中断控制LED的按一次亮按一次灭的效果新手求指教~~
2013-04-03 22:49:14

汇编语言学习大全

想学汇编语言吗?这份资料不错哦!我们都知道汇编语言是不好学的,希望这份资料能帮到你!!!!!
2014-03-21 13:21:33

汇编语言实验

;nbsp; 汇编语言程序结构………………………….8实验三&nbsp;&nbsp;&nbsp; DOS和BIOS中断功能调用………………….12实验四&nbsp;&
2008-09-29 13:56:53

汇编语言开发DSP

刚学DSP,求教如何在CCS上全用汇编语言开发DSP 2812?包括如何引导,入口地址,如何汇编调试等。
2013-10-28 12:25:51

汇编语言教程

汇编语言教程
2012-08-01 00:29:02

汇编语言时钟程序

我想用单片机汇编语言的8255编写一个简单的有中断定时的时钟程序??
2015-07-02 20:57:05

汇编语言是什么?怎样去学习汇编语言

汇编语言是什么?怎样去学习汇编语言呢?计算机怎么识别你写的代码呢?
2021-11-29 06:03:45

汇编语言的特点有哪些

第5章单片机C语言汇编语言混合编程05第5章单片机C语言汇编语言混合编程 §5-1混合编程概述 汇编语言特点: 优点:执行速度快、效率高、实时性强、与硬件结合紧密。 缺点:编程难度大、可读性差
2021-07-15 08:04:29

汇编语言真的没用吗

汇编语言是不是没用啊?汇编语言能做什么?
2021-10-20 08:05:57

汇编语言问题请教专家

工程师您好!           请如何在汇编语言中调用c语言定义的数组?最好举例说明一下,谢谢!
2018-06-21 13:05:43

ARM汇编语言入门

本指南介绍了使用A64指令集的Arm汇编语言的基本概念,向您展示了如何使用Arm Development Studio创建和运行汇编代码,并提供了汇编代码示例供您进行实验。 汇编语言是一种低级编程
2023-08-08 07:28:42

C语言汇编语言怎样才能更好地结合

在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单片机技能
2021-07-20 06:56:36

C语言汇编语言的优缺点是什么?

什么是c语言?什么是汇编语言?C语言汇编语言的优缺点是什么?
2021-10-14 08:48:23

STM32有专用的汇编语言吗?

我是一个初学者,想了解STM32是怎么使用汇编语言的?而且有没有有关的资料,然后与51单片机使用的汇编语言有什么区别?
2015-10-24 14:07:48

c语言汇编语言和机器语言的转化

汇编语言经过汇编程序可以翻译成及期望语言,C语言是不是必须先转换为汇编语言,然后才能生成机器语言?还是C语言可以直接经过编译就可以生成机器语言?我所查找的资料都是说C语言经过编译后生成.obj的目标文件,也就是机器语言,望各位大师给小弟详解一下,小弟不剩感激。
2015-04-14 16:53:27

《微机原理与汇编语言汇编语言程序设计知识

`《微机原理与汇编语言汇编语言程序设计知识[hide][/hide]`
2017-03-19 10:15:07

什么是汇编语言

基于C++宝典的学习一、什么是汇编语言汇编语言是一种功能很强的程序设计语言,也是利用了计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号
2021-07-19 06:05:14

什么是汇编语言

文章目录前言一、 汇编语言简介1.1 什么是汇编语言1.2机器语言简介1.3 汇编语言的演变史1.4 汇编语言的广义组成二、硬件与软件2.1 思考2.2 计算机的硬件构成(1)存储器(2)控制器(3
2022-02-24 07:01:46

什么是汇编语言

什么是汇编语言
2021-11-05 06:39:58

使用汇编语言的地方有哪些

对资深单片机开发人员来说经常提倡的一个开发技巧是,开发人员应避免使用汇编语言。避免使用汇编语言的原因是它特定于所使用的处理器体系结构,难以阅读,理解和维护。而且需要注意的是,在查看仍可以使用汇编语言
2021-12-01 06:33:06

如何使用keil4软件将编写的C语言程序汇编汇编语言

如何使用keil4软件将编写的C语言程序汇编汇编语言
2021-10-14 07:15:47

如何去实现基于汇编语言的LED灯闪烁呢

什么是汇编语言汇编语言有何作用?如何去实现基于汇编语言的LED灯闪烁呢?
2021-11-26 08:05:48

如何才能有针性的学习汇编语言

本人是测控专业的,以后想在嵌入式方面发展,想学习一下汇编语言,但是不知道学习那种 我发现有 专门的 汇编语言程序设计还有基于ARM体系的汇编语言还有linux汇编Inter汇编太多了如果想学习咋选择 是不是计算机专业的 汇编语言设计 把其他包括 或者大同小异
2016-08-01 00:23:34

汇编语言详细讲解

汇编语言详细介绍啊,谢谢了
2013-05-10 15:12:57

请问.C语言中可以嵌套汇编语言吗?

.C语言中可以嵌套汇编语言
2019-09-20 05:55:45

请问汇编语言和C语言哪个好用些

汇编语言和C语言哪个好用一点
2019-04-23 07:55:15

请问C语言中可以嵌套汇编语言吗?

C语言中可以嵌套汇编语言
2019-09-25 05:55:30

请问自学汇编语言汇编语言需要什么?

学过C语言和Java 学过51单片机, 现在想学习ARM 汇编语言 嵌入式系统Linux 这几个 有什么相关的视频或者书籍用来自学
2020-07-26 08:03:32

汇编语言程序设计pdf

汇编语言程序设计的内容:每种高级语言程序在连接为可执行程序之前,都必须被编译为汇编语言程序,因此对于高级语言程序设计者来说,了解编译器如何生成汇编语言代码十
2008-10-21 17:38:550

汇编语言程序设计下载

professional assembly language 汇编语言程序设计本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二部分研究汇编语言程序设计,最后一部分讲解高级汇编语言技术。本书
2008-10-21 17:42:050

32位汇编语言程序设计

Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用
2008-10-21 17:53:180

汇编语言编程艺术(PDF)

汇编语言编程艺术从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言编程的行种基础知识和编程技巧,内容涉及到数据表示、存储器管理、各种数据类型、过程、与汇编
2008-10-21 18:04:070

汇编语言程序设计(PDF)

汇编语言程序设计介绍了IBM PC微型计算机,基本汇编语言,顺序、分支与循环程序设计,子程序设计,数值运算程序设计,非数值运算程序设计等内容。自学与提高的捷径 高
2008-10-21 18:06:260

汇编语言静态分析工具设计与应用

本文针对当前汇编语言的测试工具较少这一实际情况,针对某种汇编语言语法结构特 点,确定了汇编语言静态分析工具的总体结构框架,并对工具实现过程中重点的功能模块算法, 进行
2009-06-19 11:52:1726

汇编语言源代码分析

汇编语言源代码分析 查看源代码将发现它由4 4个文件组成,其中:• 两个是汇编语言文件,它们的名字带后缀“ . s”;• 28个是用“C”语言编写的,它们的名
2010-02-09 16:18:2126

DSP汇编语言编程基础

DSP汇编语言编程基础 一、  实验目的 1、了解 DSP 的寻址方式; 2、了解 DSP 的汇编语言与 C语言混合编程。 二、  实验器材 1、安装有 CCS的 PC
2010-02-11 09:41:07205

MasmEdit汇编语言编译器

MasmEdit汇编语言编译器.rar
2010-02-24 14:15:2854

汇编语言自学教程

汇编语言自学教程 汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
2010-03-15 14:24:53509

51单片机汇编语言教程

51单片机汇编语言教程 本书有上下两册,共48课.本教程是最通俗易懂之单片机教材.
2010-05-29 10:07:381736

汇编语言程序结构

实 验   汇编语言程序结构 一、实验目的 1.掌握汇编语言程序上机过程。    2.掌握汇编语言结构。
2008-09-28 23:11:252657

汇编语言程序设计实验

实验 汇编语言程序设计 一、实验目的 1. 熟悉编写和调试语言程序的方法,提高编
2008-09-28 23:24:304006

汇编语言教程-段寄存器的说明语句

汇编语言教程-段寄存器的说明语句   在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。建立这
2010-03-27 17:17:311230

Linux中的汇编语言

在阅读Linux源代码时,你可能碰到一些汇编语言片段,有些汇编语言出现在以.S为扩展名的汇编文件中,在这种文件中,整个程序全部由汇编语言组成。有些汇编命令出现在以.c为扩展名
2011-04-07 20:43:2355

Assemble汇编语言设计技术

汇编语言 设计程序,是所有程序语言的基本资源。我们不管你使用除汇编语言或指令代码以外的程序语言编程,仅仅是编程表达、编程规则和变成环境的变化,但是这些变化都是基于汇
2011-07-07 15:47:460

C语言汇编语言混合编程示例程序

本文介绍了C语言汇编语言模块接口的一般方法,并给出了完整的编程示例
2011-07-11 17:49:02103

汇编语言第二版

汇编语言第二版
2013-09-06 14:57:330

汇编语言第二版-王爽(全部)

电子发烧友网站提供《汇编语言第二版-王爽(全部).txt》资料免费下载
2014-11-21 17:57:560

汇编语言第2版_王爽

电子发烧友网站提供《汇编语言第2版_王爽.txt》资料免费下载
2015-08-04 12:05:270

汇编语言程序设计_罗万钧

介绍汇编语言程序设计基本知识的课件 有需要的朋友下来看看
2015-12-24 10:44:220

ARM汇编语言官方手册(中文)

ARM汇编语言官方手册(中文)汇编语言ARM汇编语言官方手册(中文)
2015-12-28 15:02:27203

汇编语言的FFT算法

汇编语言的FFT算法 有需要的朋友下来看看
2015-12-29 17:25:064

微机原理汇编语言接口技术

16/32位微机原理汇编语言与接口技术,重点大学计算机教材
2015-12-31 10:50:320

汇编语言

汇编语言举例,比如读寄存器内容的源代码、汇编语言制作的光带菜单及源程序、获得操作系统版本的汇编源代码等
2015-12-31 10:40:0229

汇编语言学习课件_汇编语言程序组织

第四章 汇编语言程序组织 4.1 汇编语言语句格式 4.2 汇编语言源程序结构 4.3 常用伪指令 4.4 汇编语言操作符 4.5 汇编语言程序上机过程 4.6 调用ROM BIOS或DOS中断实现数据的输入输出 4.7 简化段定义
2015-12-31 10:41:020

汇编语言学习课件_汇编语言高级编程技巧

第八章 汇编语言高级编程技巧 8.1 模块化程序设计 8.2 汇编语言程序与高级语言程序的连接 8.3 使用DOS EXEC功能执行程序 8.4 TSR程序设计
2015-12-31 10:41:140

汇编语言程序设计自学教程

汇编语言程序设计自学教程,帮助自学者掌握汇编语言的自行设计与编程。
2016-04-06 15:47:0639

汇编语言程序设计

汇编语言程序设计,又需要的可以 下来看看
2016-05-06 15:13:280

汇编语言程序设计

电子专业单片机相关知识学习教材资料——汇编语言程序设计
2016-09-01 16:40:070

《微机原理与汇编语言》实验指导书

《微机原理与汇编语言》实验指导书
2016-12-14 15:07:030

《微机原理与汇编语言》微机基础知识

《微机原理与汇编语言》微机基础知识
2016-12-14 15:07:030

《微机原理与汇编语言》 中断系统

《微机原理与汇编语言》 中断系统
2016-12-12 22:07:220

《微机原理与汇编语言》 定时器及应用

《微机原理与汇编语言》 定时器及应用
2016-12-12 22:07:220

微机原理--汇编语言程序设计

微机原理--汇编语言程序设计
2016-12-12 22:07:220

汇编语言的指令集

汇编语言的指令集
2017-10-24 08:45:4624

Linux 汇编语言开发指南详解

汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。Linux 是一个用 C 语言开发的操作系统,这使得很多程序员开始忘记在 Linux 中还可以直接使用汇编这一
2017-11-02 10:51:480

C语言汇编语言相互结合的嵌套汇编语言

要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C 语言,那么一个问题便随之而产生,如果将C 语言汇编语言相互结合,达到更好的编程效果,本次讲解就是基于这个问题而生成的。
2018-03-14 18:23:003245

高级语言汇编语言_机器语言的区别

本文首先介绍了高级语言的优缺点、汇编语言的优缺点及使用汇编语言的理由,其次介绍了机器语言的优缺点,最后阐述了高级语言汇编语言、机器语言的区别是什么。
2018-04-16 10:28:0429298

单片机闪烁灯汇编语言源代码大全(四款闪烁灯的汇编语言源代码)

本文主要介绍了四款闪烁灯的汇编语言源代码,具体的跟随小编一起来了解一下。
2018-04-26 14:47:2424136

单片机 | 基础汇编语言编程实例

单片机汇编语言编程
2019-06-05 18:04:339371

从编译原理的角度看C语言如何转换成汇编语言的?

从编译原理的角度看C语言是如何转换成汇编语言的?
2020-02-25 15:52:072221

汇编语言结构化设计程序教程

汇编语言结构化设计程序教程说明。
2021-03-26 09:38:5624

汇编语言第4版电子版下载

汇编语言第4版电子版免费下载。
2021-06-16 09:23:120

单片机C语言汇编语言混合编程实例详解

单片机C语言汇编语言混合编程实例详解
2021-08-16 09:50:41221

CPU如何执行代码 汇编语言教程

的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面
2021-08-25 11:14:103263

MCS-51单片机汇编语言程序设计

文章目录前言一、汇编的方法1.手工汇编:2.机器汇编:二、伪指令一、汇编语言指令类型二.伪指令 常用伪指令及功能三、汇编语言程序设计步骤四、常用的顺序结构1、 顺序程序设计2 、 分支程序的设计总结
2021-11-05 12:21:0428

Stm32单片机开发KEIL启动文件汇编语言详解

文章目录简介 启动文件汇编代码相关指令 堆栈空间的定义 初始化中断向量表 复位中断函数 中断函数的弱(WEAK)声明 用户栈和堆初始化简介我们在做单片机编程的时候,大部分都是用KEIL自带的启动文件
2021-11-13 15:21:0312

汇编】AT89C52点亮一盏LED灯(汇编语言)

学习利用汇编语言写单片机程序的第一步是要学习汇编语言的相关理论知识,那么实践操作的第一步肯定是从点灯开始啦!编译环境:keil4编译语言汇编语言内容:  一、keil4建立AT89C52的工程环境
2021-11-22 20:51:0318

汇编语言学习

寄存器 一个cpu有多个寄存器 就是cpu中可以存储数据的器件,一个cpu中有多个寄存器汇编语言由一下3类组成 1、汇编指令(机器码的助记符) 2、伪指令(由编译器执行
2021-11-23 18:06:2414

[从零学习汇编语言] - 寄存器与内存访问

[从零学习汇编语言] - 寄存器与内存访问
2021-11-26 20:51:0612

KEIL中启动文件详解汇编语言

KEIL中启动文件详解汇编语言
2021-12-04 12:06:098

作业七STM32CubeMX及汇编语言串口通信

作业七STM32CubeMX及汇编语言串口通信
2021-12-07 09:06:092

【嵌入式】基于MDK创建纯汇编语言的STM32工程

【嵌入式】基于MDK创建纯汇编语言的STM32工程
2021-12-07 09:36:0515

[从零学习汇编语言] - 计算机中的硬件与软件

文章目录前言一、 汇编语言简介1.1 什么是汇编语言1.2 机器语言简介1.3 汇编语言的演变史1.4 汇编语言的广义组成二、硬件与软件2.1 思考2.2 计算机的硬件构成(1)存储器(2)控制器
2021-12-31 19:55:1110

汇编语言题目库

汇编语言2005-2006学年第二学期期末考试复习题及参考答案
2022-05-24 15:02:411

ARM汇编语言官方手册

ARM汇编语言官方手册
2022-10-10 10:44:1915

神经元汇编语言参考

神经元汇编语言参考
2023-03-13 19:30:170

神经元汇编语言参考

神经元汇编语言参考
2023-07-04 20:47:520

单片机汇编语言的结构/数据类型/汇编指令

开发汇编语言是为了为机器级代码指令提供助记符或符号,汇编语言程序由助记符组成,因此应将它们翻译成机器代码。负责这种转换的程序称为汇编程序。汇编语言通常被称为低级语言,因为它直接与 CPU 的内部结构一起工作。要用汇编语言编程,程序员必须知道 CPU 的所有寄存器。
2023-07-07 12:28:401824

已全部加载完成