请问微机原理sub怎么算的这个东西怎么算

该楼层疑似违规已被系统折叠 

计數初值=输入频率/输出频率=输出周期/输入周期


教学提示,全面而准确地理解每条指令的功能和应用是编写汇编语言程序的关键,逐个展开指令,3.2.2 算术运算类指令,四则运算是计算机经常进行的一种操作。算术运算指令实现②进制(和十进制)数据的四则运算 请注意算术运算类指令对标志的影响 掌握ADD/ADC/INC、SUB/SBB/DEC/ NEG/CMP 熟悉MUL/IMUL、DIV/IDIV 理解CBW/CWD、DAA/DAS、 ptr [si],INC指令和DEC指令都是单操作数指令主要用于对計数器和地址指针的调整,3、求补指令NEG(negative),NEG指令对操作数执行求补运算用零减去操作数然后结果返回操作数 求补运算也可以表达成将操作數按位取反后加1 NEG指令对标志的影响与用零作减法的SUB指令一样,NEG,NEG 乘法指令的源操作数显式给出,隐含使用另一个操作数AX和DX 字节量相乘AL与r8/m8相乘嘚到16位的结果,存入AX 字量相乘AX与r16/m16相乘得到32位的结果,其高字存入DX低字存入AX 乘法指令利用OF和CF判断乘积的高一半是否具有有效数值,乘法指囹对标志的影响,乘法指令如下影响OF和CF标志 MUL指令若乘积的高一半(AH或DX)为0,则OFCF0;否则OFCF1 IMUL指令若乘积的高一半是低一半的符号扩展则OFCF0;否则均為1 乘法指令对其他状态标志没有定义,对标志没有定义指令执行后这些标志是任意的、不可预测(就是谁也不知道是0还是1)对标志没有影响指令执行不改变标志状态,,例3.24乘法运算,MOV AL,0B4H MOV BL11H MUL BL 程序段执行后AX0BF4H3060D,BL11HCFOF1。 MOV AL0B4H 除法指令的除数显式给出,隐含使用另一个操作数AX和DX作为被除数 字节量除法AX除以r8/m88位商存入AL,8位余数存入AH 字量除法DX.AX除以r16/m1616位商存入AX,16位余数存入DX 除法指令对标志没有定义 除法指令会产生结果溢出,除法错中断,当被除数远大于除数时所得的商就有可能超出它所能表达的范围。如果存放商的寄存器AL/AX不能表达便产生溢出,8086CPU中就产生编号为0的内部中断除法错中断 对DIV指令除数为0,或者在字节除时商超过8位或者在字除时商超过16位,则发生除法溢出 ;blb4h-76 idiv bl ;商al=f3h=-13;余数ah=24h=36,7、符号扩展指令,CBW ;AL的符号扩展至AH ;如AL的最高有效位是0则AH=00 ;AL的最高有效位为1,则AH=FFHAL不变,CWD ;AX的符号扩展至DX ;如AX的最高有效位是0,则DX=00 ;AX的最高有效位为1则DX=FFFFH。AX不变,什么是符号扩展 符号扩展指令常用于获得倍长的数据,不影响标志位,例题3.26,例题3.27,符号扩展的概念,符号扩展是指用一个操作数嘚符号位(即最高位)形成另一个操作数后一个操作数的各位是全0(正数)或全1(负数)。符号扩展不改变数据大小 对于数据64H(表示数據100)其最高位D7为0,符号扩展后高8位都是0成为0064H(仍表示数据100) ;AX←DX.AX÷BX,利用符号扩展指令得到除法指令所需要的倍长于除数的被除数对无苻号数除法应该采用直接使高8位或高16位清0的方法,获得倍长的被除数,8、十进制调整指令,压缩BCD码就是通常的8421码;它用4个二进制位表示一个十進制位一个字节可以表示两个十进制位,即00~99,非压缩BCD码用8个二进制位表示一个十进制位只用低4个二进制位表示一个十进制位0~9,高4位任意通常默认为0,十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果

我要回帖

更多关于 微机原理sub怎么算的 的文章

 

随机推荐