汇编语言第二题,判断结果是转移还是顺序啊!最好还能解释下test指令

如题所述

第1个回答  推荐于2016-08-03
mov al, 'A'
;相当于

mov al, 41h
;相当于
mov al, 01000001b ;二进制数
test al, 40h
;相当于
test al, 01000000b; 二进制
;相当于
01000001b

01000000b
;两数相或,第七位都为一,即 1 or 1 = 1 ,不等于零
;所以
mov al, 'A'
test al, 40h ;结果不等于零,解释见上面
jz L1 ;因为不等于零,所以顺序执行,不转移追问

为什么是比较第七位呢?

不应该是第六位么

因为标志寄存器的标志位是第六位

追答

这是基准的问题,你可以说是第六位,你是从零开始数,我按大家习惯从1开始数,那就是第七位的。严格说,你的说法比较准确,这是指在汇编环境或计算机开发环境,都习惯从零开始数,老百姓生活中则是从1开始数,我老百姓时间做的太久了,已经离开计算机快8个年头了,总以为自己是老百姓,所以就习惯的说是第七位了。

本回答被提问者和网友采纳
第2个回答  2015-06-14
MOV AL,'A';(AL)=41H
TEST AL,40H;0100 0001B AND 0100 0000B=40H
JZ L1;显然结果非零,顺序执行

汇编语言第二题,判断结果是转移还是顺序啊!最好还能解释下test指令
01000000b ;两数相或,第七位都为一,即 1 or 1 = 1 ,不等于零 ;所以 mov al, 'A'test al, 40h ;结果不等于零,解释见上面 jz L1 ;因为不等于零,所以顺序执行,不转移

汇编中的test指令各是什么?
汇编中的test指令是用于测试位状态的一系列指令。这些指令可以帮助汇编程序检查和修改处理器的位,并根据测试结果进行相应的操作。具体来说,以下是常见的汇编中的test指令:TEST指令:常见的如TEST EAX寄存器指令等。它们用于测试特定寄存器的某些位是否被设置。在执行这些指令时,通常不会更改目标寄存器的值...

汇编中的test指令
汇编中的TEST指令是用于进行逻辑与操作并设置状态标志位的指令。详细解释如下:1. TEST指令的基本功能:TEST指令在汇编语言中用于执行逻辑与操作。它不会对操作数进行实际的算术减法运算,而是检查它们之间的某些位模式。具体来说,它会将两个操作数进行逻辑与操作,但并不保存结果,而是根据操作的结果设置...

汇编语言的TEST指令可不可以详细解释教我呢?最好有例子。THANKS!
TEST指令和AND指令差不多,只是AND指令执行后会把结果送到目的操作数,而TEST却不会,只是影响标志位 例如:测试AL中的bit3位,使用TEST AL,08H.若ZF=1,表示该位是0,若ZF=0,那么该位表示1.用哪个数来测试寄存器的位,例如本例,08H表示二进制数00001000B,bit3位是1,其余是0,所以用 08H...

汇编语言TEST指令
TEST指令和AND指令执行同样的操作,但TEST指令不送回操作结果,而仅仅影响标志位。例如:TEST EAX,01H ;指令会把寄存器EAX中的值和1进行按位相与,并影响标志位。如果EAX的最低位为1则标志位ZF为0,否则ZF为1。用TEST可以判断某一位是1还是0,也可以判断某几位是否全为0 ...

test指令是什么意思?
test指令和and 指令执行同样的操作,但test指令不送回操作结果,而仅仅影响标志位。test al,01; 如al的最低位为1,则zf=0,否则zf=1 test指令 这类指令主要影响 ZF 标志位test ax,100b将 ax的值和100b进行“与”操作 ,但不改变ax本身若与操作的结果为零则ZF置位。

请问一个汇编语言中的test语句问题。
TEST是测试指令,操作与AND(逻辑与)一样,但不回送结果,也就是说操作不会改变操作数的内容。TEST指令执行后CF=0,OF=0,AF不确定,SF、ZF、PF根据指令执行结果确定。因为一个数与本身进行“与”操作的结果还是这个数,因此可以根据SF、ZF来确定这个数是否是负数,零,还是正数。如果SF=1 ,则为...

汇编语言,TSET AL,01H (换行) JZ N 这两条指令的实现过程,什么是为零跳...
ZF位置位(1),否则清0(0)。JZ N指令是当PSW寄存器的ZF为1时,就跳转到标号N处执行,否则顺序执行 TEST AL, 01H ;寄存器AL中内容与立即数01H做与运算 JZ N ;上一条指令结果为0就跳转 就是当AL的最低位为0时跳转,为1时顺序执行 ...

汇编指令test的用法
test属于逻辑运算指令,其功能为功能执行BIT与BIT之间的逻辑运算和测试功能(两操作数作与运算,仅修改标志位,不回送结果)。Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。EST AX, BX与AND AX, BX命令有相同效果。TEST语法规格:TEST r\/m,r\/m\/data。其...

汇编语言,跳转指令问题:
test这里是做按位与操作,test %eax, %eax是先将%eax和自己按位与,如果所得的结果>0,那么就跳转,否则继续执行下面的指令。这里的trick是test一个寄存器本身就是看寄存器的值是不是0. 如果不是0,那么jg一定会跳转。机器这样写的目的是减少指令所占的空间(你可以尝试用mov指令实现看寄存器的值是否...

相似回答