接着问!如题:push 和 pushf 指令有什么区别?

上传的附件
你的回答被采纳后将获得: 7点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 禁用win10数字签名 [80x86汇编]imul 指令和mul 指令有什么区别? : 下一篇keyboard_arrow_right

3个回答

Withdrawn
2019-01-26 09:43:36

欢迎回答

Viewer
2019-01-26 17:38:11

push,汇编术语,实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令。

PUSH的操作过程是:

(SP)<—(SP)-2,((sp))<—OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置,简单来说:减2就是指针上移2个单元。

Nightfall
2019-01-27 11:00:39

push和pushf指令可将源操作数压入栈中,push是普通将字压栈,pushf是标志入栈指令。

精彩评论

  • [算法问题] 谁逃课了
    哈哈,一开始还以为是吐槽帖,没想是问问题啊。。。顺便解答下你的问题吧。 bA, bB, bC, bD, bE 来表示A、B、C、D、E,true表示逃课,false表示不逃课,原理比较简单,就是暴力枚举 bA, bB, bC, bD, bE,然后判断是否满足给出的 5 个条件,代码如下所示: bool judge(bool bA, bool bB, bool bC, bool bD, bool bE){ bool bRet = false; do { // (1)如果A逃课,B也一定逃课 if (true == bA) { if (true == bB) { // 条件(1)成立 } else { // 条件(1)不成立 break; } } // (2)B和C中有且只有一个人参与逃课 if (true == (bB || bC) &amp;&amp; false == (bB &amp;&amp; bC)) { // 条件(2)成立 } else { // 条件(2)不成立 break; } // (3)C和D要么都逃,要么都不逃 if (true == bC) { if (true == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } else { if (false == bD) { // 条件(3)成立 } else { // 条件(3)不成立 break; } } // (4)D和E至少有一个人逃了 if (true == (bD || bE)) { // 条件(4)成立 } else { // 条件(4)不成立 break; } // (5)如果E逃课,则A和D一定参与逃课 if (true == bE) { if ((true == bA) &amp;&amp; (true == bD)) { // 条件(5)成立 } else { // 条件(5)不成立 break; } } // 所有条件都满足 bRet = true; } while (false); return bRet;}int _tmain(int argc, _TCHAR* argv[]){ int a = 0, b = 0, c = 0, d = 0, e = 0; bool bA = false, bB = false, bC = false, bD = false, bE = false; for (a = 0; a &lt; 2; a++) { for (b = 0; b &lt; 2; b++) { for (c = 0; c &lt; 2; c++) { for (d = 0; d &lt; 2; d++) { for (e = 0; e &lt; 2; e++) { bA = (bool)a; bB = (bool)b; bC = (bool)c; bD = (bool)d; bE = (bool)e; // 判断 if (true == judge(bA, bB, bC, bD, bE)) { if (true == bA) { printf("A"); } if (true == bB) { printf("B"); } if (true == bC) { printf("C"); } if (true == bD) { printf("D"); } if (true == bE) { printf("E"); } printf("\n"); } } } } } } return 0;} 运行程序,结果显示:CD,则表示C和D逃课满足上述5个条件~~~
    2020-07-12 12:15:34 thumb_up( 2 )
  • 说说最近的感想吧(最佳答案不止一个)
    最近一直在学JAVA,有不懂的可以交流
    2020-06-28 23:56:25 thumb_up( 1 )
  • 用c对无向图领接表的存盘,读盘并输出邻接表
    这是数据结构中图的知识点吧,一言难尽啊!自己也忘得差不多了,定义出无向图的数据结构(点数、边数、点和边),用链表结构来存储邻接表?最后实现图的遍历。。
    2020-06-30 12:56:29 thumb_up( 2 )
  • 想学游戏开发,应该直接学习游戏引擎还是从游戏引擎原理学起呢?
    从事3年的游戏客户端开发,我的建议是直接学习现成的游戏引擎。理由1、容易出作品能增加自己的积极性2、方便之后出来找工作3、并不会妨碍到自己学习游戏原理,问题是你是否多思考,(当你使用引擎的某个功能并带有好奇的时候,你会发现网上很多人都有相同的疑问,很多大神都会贴出自己完整的思路)4、可能做游戏会和你想象中的不太一样,直接上手用引擎就是在做游戏,如果发现不合适,也可以尽早退出
    2019-03-24 18:12:39 thumb_up( 4 )
  • 可以问一下站内那个基于Java的办公自动化系统怎么导入与运行吗
    你是用什么软件开发Java程序?我学生用的是eclipse软件如果你是用eclipse的话:1.file中找到import(鼠标右键也可以找到)2.点击Existing Project into Workspace3.在select root directory右边点击Browse4.查找需要导入的工程文件就行了
    2020-03-09 13:30:36 thumb_up( 3 )
  • [算法问题] 谁逃课了
    像这道题,直接printf输出结果,会不会就过了呢??
    2020-07-14 11:22:42 thumb_up( 1 )
eject