汇编语言中test的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言中test的用法相关的知识,希望对你有一定的参考价值。

Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。

TEST AX,BX 与 AND AX,BX 命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保存到AX中。

Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。但是,Test命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。

est的一个非常普遍的用法是用来测试一方寄存器是否为空:test ecx, ecx jz somewhere,如果ecx为零,设置ZF零标志为1,jz跳转。

扩展资料

pytest :

pytest 允许你在任何名为 test_*.py 的文件中定义测试,并将其定义为以 test_* 开头的函数。然后,pytest 将在整个项目中查找所有测试,并在控制台中运行 pytest 时自动运行这些测试。

pytest 接受标志和参数 ,它们可以在测试运行器停止时更改,这些包含如何输出结果,运行哪些测试以及输出中包含哪些信息。

它还包括一个 set_trace() 函数,它可以进入到你的测试中。它会暂停您的测试, 并允许你与变量进行交互,不然你只能在终端中“四处翻弄”来调试你的项目。pytest 最好的一方面是其强大的插件生态系统。

参考资料来源:百度百科-test

参考技术A 为举例方便说一下jnz和jz
测试条件
JZ ZF=1
JNZ ZF=0
即Jz=jump if zero (结果为0则设置ZF零标志为1,跳转)
Jnz=jump if not zero

test属于逻辑运算指令

功能: 执行BIT与BIT之间的逻辑运算
测试(两操作数作与运算,仅修改标志位,不回送结果).
Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。TEST AX,BX 与 AND AX,BX 命令有相同效果

语法: TEST r/m,r/m/data
影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0)

运用举例:
1.Test用来测试一个位,例如寄存器:

test eax, 100b; b后缀意为二进制
jnz ******; 如果eax右数第三个位为1,jnz将会跳转

我是这样想的,jnz跳转的条件是ZF=0,ZF=0意味着ZF(零标志)没被置位,即逻辑与结果为1.

2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:

test ecx, ecx
jz somewhere

如果ecx为零,设置ZF零标志为1,Jz跳转本回答被提问者采纳
参考技术B 汇编语言中,test的用法你可以。到相关的汇编语言的书里进行了解

Linux的终端怎么运行C语言

我编好了一个C程序 ,然后输入到Linux的终端上,但是我不知道怎么运行请哪位高手指导指导 。详细点。。。。

打开终端 然后VI环境下编译运行
一. 常用编译命令选项
假设源程序文件名为test.c。

1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。

3. 选项 -E
用法:#gcc -E test.c -o test.i
参考技术A 不知道你是如何编译的,如果没有指定生成的文件名的话,那么系统会默认的将可执行文件命名为a.out,执行的话先进入到可执行文件所在的目录,然后 ./a.out 就可以了。如果你通过 - o 选项命名(假如名为test),那么直接 ./test 即可执行 参考技术B 不知道你是如何编译的,如果没有指定生成的文件名的话,那么系统会默认的将可执行文件命名为a.out,执行的话先进入到可执行文件所在的目录,然后 ./a.out 就可以了。如果你通过 - o 选项命名(假如名为test),那么直接 ./test 即可执行。 参考技术C 设,源程序名为 src.c
你想让编译后的程序名为 src
那么 cc src.c -o src
如果不指定 -o src ,那么默认生成 a.out
执行程序,方法为 ./src
参考技术D 很简明的哦。
或者用Geany,一个简洁的IDE,很好用的。
下面望我的学习经验能跟你共享。
1、先在你要实现C程序的目录下建立一个C程序,如:先进入要实现C的目录cd
/home
然后mkdir
os(自己取的文件名)
2、使用vi命令编译你的C程序。如:vi
100.c(自己取的C文件名)
,按
i
键进入编辑命令,接下来就是编辑了,输完之后,按ESC,然后按shift+冒号,提示为冒号,输入wq(保存并退出,不保存则为q
!)
3、编译命令为gcc
-o
文件名(不带后缀)
文件名
如上面的:gcc
-o
100
100.c
4、若程序有错,则重复第二步。
5、若成功编译,则使用
.
/文件名
如:./
100
记住是一点加斜杠
这个上面显示得不是很清楚。
以上就是我在学习中学到的,希望对你有帮助。
NGC44865级2009-10-22两个问题,首先是路径,这和在windows下运行是一样的,你输入文件命它就会运行了,不过不同的是,如果你只输入文件名的话,linux默认是不会在当前目录下去找的,所以你还要给出路经,前面多位朋友说的"./文件名"其实就是指的在当前目录下找这个文件,如果你不在当前目录的话,在文件名前给出具体的路径就行了,相对路径和绝对路径都可以;其次是权限,如果你要运行这个文件,你还要确保你对它有“执行”这个权限,假如你是这个文件的所有者那么你可以用ls
-l或者ll命令来看它的权限,如果你没有其它的安全顾虑的话,你可以用chmod
777
文件名,来给这个文件的所有用户加上执行权。然后再按前面的方式运行,应该没有什么问题了。事实上,在很多系统上,有执行权的文件在终端显示的是绿色。补充:
运行前得用gcc编译,如果你不会,在windows下编译好放上去应该也行。gcc的使用方法前面几位朋友已经说的很详细了。更多回答

以上是关于汇编语言中test的用法的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言 call怎么用

keil怎样把C语言转换成单片机汇编语言

win32汇编中nmake用法

汇编语言MOV指令

汇编语言段和RSEG用法

汇编语言各种指令的解释与用法