小编dan*_*lhc的帖子

`test`指令有什么作用?

我正在查看一些小的汇编代码,我无法理解TEST指令及其用法.我在循环结束时查看以下代码:

8048531:    84 c0                   test   al,al
8048533:    75 dc                   jne    8048511 <function+0x2d>
Run Code Online (Sandbox Code Playgroud)

我理解TEST的方式是它有点像AND运算符,它设置了一些标志.我想我真的不明白旗帜是如何运作的.test al,al对我来说,它看起来像检查相同的低位,并将始终得到相同的结果.

谁能解释一下?

x86 assembly

26
推荐指数
1
解决办法
4万
查看次数

是否可以仅为双时态SQL数据库使用3个时间戳?

在SQL中实现双时态数据库时,通常建议使用以下时间戳:

  • ValidStart
  • ValidEnd
  • TransactionStart
  • TransactionEnd

我以前曾经使用过这种方法几次,但我一直想知道为什么只有3个时间戳,将TransactionEnd保留在外,这不仅仅是一个正确的实现.这里的事务时间范围从TransactionStart到下一个TransactionStart.

是否有强大的论据不仅使用3个时间戳,这将限制数据库的大小?

sql database bi-temporal

5
推荐指数
1
解决办法
242
查看次数

x86 汇编器:shl 和其他指令

我试图理解循环内的一些汇编代码。循环从 1 运行到 255,并在循环内执行以下操作:

mov    eax,DWORD PTR [ebp-0x4]
shl    eax,0x2
add    eax,DWORD PTR [ebp+0x8]
mov    DWORD PTR [eax],0x0
Run Code Online (Sandbox Code Playgroud)

这里的DWORD PTR [ebp-0x4]指的是 1 到 255 之间的数字。

有人能弄清楚这里发生了什么事吗?谢谢。

x86 assembly

1
推荐指数
1
解决办法
2401
查看次数

标签 统计

assembly ×2

x86 ×2

bi-temporal ×1

database ×1

sql ×1