首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`or al,al’在x86程序集中

‘`or al,al’在x86程序集中
EN

Stack Overflow用户
提问于 2014-03-02 04:27:30
回答 2查看 3.4K关注 0票数 3
代码语言:javascript
复制
print_string:
   lodsb        ; grab a byte from SI
   cmp al, 0
   ;or al, al  ; logical or AL by itself
   jz .done   ; if the result is zero, get out

   mov ah, 0x0E
   int 0x10h

我想知道or al, al是如何工作的。我知道它测试字符串中的所有字符是否都被打印出来了?但我不明白逻辑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-02 04:30:21

如果al是0(或者更确切地说,or al, al的结果是0,只有当al为0时才会发生),那么它就设置了零标志。跳转(jz)测试零标志,并在设置它时跳转。

票数 6
EN

Stack Overflow用户

发布于 2014-03-02 04:37:04

如果结果为0(即当al =0时),or al, al设置零标志,就像cmp al, 0一样。这两种操作的有用区别在于,or al, al在x86体系结构上具有较小的编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22123863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档