如何检测两个字节数相乘是字还是字节?
对于mul指令而言,如果AH为0,则CF,OF均为0,否则均为1.
对于IMUL指令而言,如过乘积的高一半是低一半的符号扩展,则CF,OF均为1,否则全为1.
除法指令对所有条件码均无定义
逻辑指令中,只有NOT不影响标志位
AL=0AH,下列指令执行后能使AL=05H的是 选项A)NOT AL是错误的。
串传输,如:
LEA SI,MESS1
LEA DI,MESS2
MOV CX,17
CLD
REP MOVSB
不同的串操作指令,对标志位的影响不同。传送类的串指令,不影响标志位。此类指令有:MOVS,LODS, STOS, INS
, OUTS。
比较类的串指令,会按比较结果设置标志位。与减法运算指令一样,会影响ZF, CF, ZF,OF, SF, AF, PF等标志位。此类指令有:CMPS,SCAS。
STOS(STOSB STOSW STOSD)把AX中的内容移动到目的变址寄存器所指向的附加段的某某单元中。
比较不带符号数,JB/JC/JNAE JNB/JAE/JNC JBE/JNA JA/JNBE.
比较带符号数,JL JNL JLE/JNG JNLE/JG
观察规律,出现L,G字母的都是带符号数的
两个变址寄存器:
SI:存储器指针,串指令中的源操作数指针。
DI:存储器指针,串指令中的目的操作数指针。
PSW寄存器中共有6个条件状态位,3个控制状态位。
低八位向高八位进位时,CF=1.
OF = 1。????????????
相联存储器,请百度。
设物理地址(21000H)=30H,(21001H)=40H,(21002H)=50H。如从地址21001H中取出一个字的内容是5040H
SP始终是指向栈顶的。。BP的指向其实没有什么要求,只是说明,如果不指明段地址的情况下,默认的段地址是SS,这说明了SP/BP这两个寄存器都跟栈有关,一个指向栈顶,一个指向栈中的数据。。这样,对于栈来讲,栈顶的位置(SP)是不能轻易改变的,所以,如果我们要用到栈中的数据,就要是用BP了。。你比如:
mov ax,stack
mov ss,ax
mov sp,10h
mov bp,sp
//目前栈顶的值给了BP我们就可以通过改变BP的值来指向栈中的数据了。。