zoukankan      html  css  js  c++  java
  • 王爽汇编 检测点10.5

      (1)下面的程序执行后,ax 中的数值是多少?

     1 assume cs:code
     2 stack segment
     3     dw 8 dup (0)
     4 stack ends
     5 code segment
     6  start:    mov ax,stack
     7         mov ss,ax
     8         mov sp,16
     9         mov ds,ax
    10         mov ax,0
    11         call word ptr ds:[0]
    12         inc ax
    13         inc ax
    14         inc ax
    15         mov ax,4c00h
    16         int 21h
    17 code ends
    18 end start

    答案: ax=3

       解析:stack定义16字节的空间,其中都是0.然后ss,sp指向站定也就是stack:[10h],然后让数据段也指向stack空间。也就是说stack段即是栈段也是数据段

          call word ptr ds:[0]读取指令到执行控制器,然后IP地址指向了下一行指令。(inc ax)然后执行call指令。然后push IP。先sp=sp-2,使sp指向了ss:[0eh]。然后这里存储着下一行的偏移地址。

          执行 jmp word ptr 内存单元地址。 此时就执行到了下一行。(inc ax) 所以最后ax=3.

  • 相关阅读:
    linux学习记录-----vsftpd服务安装配置
    PTA数据结构第一次作业
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/Triomphe/p/8541952.html
Copyright © 2011-2022 走看看