美文网首页
检测点答案

检测点答案

作者: 退堂鼓国家一级艺术家 | 来源:发表于2017-09-07 17:34 被阅读7次

    9.1

    (1)

    首先因为jmp有显示指定是word ptr,所以偏移地址[bx+1]一定是一个16位的字型数据,也就是说data里要用dw来创建数据。
    其次,程序的第一条指令都是CS:0000,于是偏移地址[bx+1]指定的数据要为0。

    (2)

    第一个空要填0,理由同上。也可以填bx
    第二个空填代码段的段地址,比如cs或者data

    (3)

    因为是dword ptr,所以这是一个段间转移。高位为cs,低位为ip。于是CS=0006H,IP=00BEH

    9.2

    (1)要补全的如下

    mov cl,[bx]
    mov ch,0
    jcxz ok
    inc bx
    

    9.3

    inc cx
    因为loop会先cx-1再来看是不是cx=0,所以万一cx是0的话,loop检测的cx是0-1=-1,不是0会继续循环。
    ;另外要注意这里的loop有C++里的do……while的感觉,如果loop s在s后面的话,是会先执行一次s里的指令的。

    10.2

    首先 “call 标号” 相当于 进行“ push IP”,然后“jmp near ptr 标号”。要注意的是,IP是call 标号的下一条指令的IP,而不是指令call 标号的IP。因为我们在指令的执行是先改变IP,然后再把指令送入指令缓冲器中,再执行。所以这个“call s”,执行时,push ip,是push的6而不是3。

    相关文章

      网友评论

          本文标题:检测点答案

          本文链接:https://www.haomeiwen.com/subject/yklehxtx.html