资源描述:
《汇编语言指令.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言(王爽版)用到的伪指令,指令等一寄存器(reg):AX,BX,CX,DX,ah,al,bh,bl,ch,cl,dh,dl,SI,DI,SP,BP,IP。段寄存器(sreg):CS,SS,DS,ES。1CS——代码段寄存器(CodeSegmentRegister),其值为代码段的段值;2DS——数据段寄存器(DataSegmentRegister),其值为数据段的段值;3SS——堆栈段寄存器(StackSegmentRegister),其值为堆栈段的段值;4ES——附加段寄存器(ExtraSegmentRegister),其值为附加数据段的段值
2、;5BP为基指针(BasePointer)寄存器,用它可直接存取堆栈中的数据;6SP为堆栈指针(StackPointer)寄存器,用它只可访问栈顶。7寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高;8寄存器BX称为基地址寄存器(BaseRegister)。它可作为存储器指针来使用;9寄存器CX称为计数寄存器(CountRegister)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;10寄存器DX称为
3、数据寄存器(DataRegister)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。11SI和DI称为变址寄存器(IndexRegister),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。16位标志寄存器——共用了9个标志位,它们主要用来反映CPU的状态和运算结果的特征。标志位的分布如下表所示。1514131211109876543210 OFDFIFTFSFZF AF PF CF1、进位标志CF(CarryFlag)主要用来反映运算
4、是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。2、奇偶标志PF(ParityFlag)用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。3、零标志ZF(ZeroFlag)用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。4、符号标志SF(SignFlag)用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。5、溢出标志OF(
5、OverflowFlag)用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。6、追踪标志TF(TrapFlag)被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。7、方向标志DF(DirectionFlag)用来决定在串操作指令执行时有关指针寄存器发生调整的方向。Cld指令:将标志寄存器的DF位置0,Std指令:将标志寄存器的DF位置18、中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,
6、CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。Sti用于设置IF=1;Cli用于设置IF=0。二数据传送指令(mov,push,pop,pushf,popf);1Mov为转移指令把后面的数据转移到前面。mov寄存器,段寄存器mov段寄存器,寄存器mov寄存器,数据mov寄存器,寄存器mov寄存器,内存单元mov内存单元,段寄存器2push和poppush(段)寄存器
7、;将一个(段)寄存器中的数据入栈。pop(段)寄存器;出栈,用一个(段)寄存器接收出栈的数据。push内存单元;将一个内存字单元处的字入栈(注意:栈操作都是以字为单元。)pop内存单元;出栈,用一个内存单元接收出栈的数据。3pushf和popfpushf的功能是将表示寄存器的值压栈。popf是从栈中弹出数据,送入标志寄存器中。5三算术运算指令(add,sub,adc,sbb,inc,dec,cmp,div,mul);1add为相加指令,把两个数相加的结果存储在前面add寄存器,数据add寄存器,寄存器add寄存器,内存单元add内存单元,寄存器2su
8、b为相减指令,把第一个数减去第二个数的结果存储在前面,用法同add。3adc和sbbadc带进位加法指令,它