博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验8 分析一个奇怪的程序
阅读量:5285 次
发布时间:2019-06-14

本文共 593 字,大约阅读时间需要 1 分钟。

assume cs:codesgcodesg segment        mov ax,4c00h        int 21hstart:  mov ax,0    s:  nop        nop        mov di,offset s        mov si,offset s2        mov ax,cs:[si]        mov cs:[di],ax    s0: jmp short s    s1: mov ax,0        int 21h        mov ax,0    s2: jmp short s1        nopcodesg endsend start

我们编译链接运行这个程序,发现程序能够正常返回,所以说

mov ax,4c00hint 21h

这两条语句一定有执行。

Screen Shot 2018-09-19 at 7.11.57 pm

Screen Shot 2018-09-19 at 7.16.40 pm

注:f6eb 在内存中存储为ebf6ebf6 也就是 jmp short s1 的机器码,eb 代表 jmpf6 是偏移地址的补码表示,转化成十进制为 -10

Screen Shot 2018-09-19 at 7.33.43 pm

注:机器码 ebf6 表示从该处往上跳十个字节。因为该指令(ebf6)长度为两个字节,该指令执行后 IP 寄存器的值为 8+2+(-10)=0

Screen Shot 2018-09-19 at 7.45.20 pm

程序正常结束:

Screen Shot 2018-09-19 at 8.07.58 pm

附:

转载于:https://www.cnblogs.com/kafffka/p/9677072.html

你可能感兴趣的文章
java获取hostIp和hostName
查看>>
关于web服务器和数据库的各种说法(搜集到的)
查看>>
C# Stream 和 byte[] 之间的转换
查看>>
OMG: daily scrum nine
查看>>
redis与spring结合错误情况
查看>>
第六章 字节码执行方式--解释执行和JIT
查看>>
字符串方法title()、istitle()
查看>>
yield语句
查看>>
查看linux系统中占用cpu最高的语句
查看>>
[洛谷P1738]洛谷的文件夹
查看>>
ubuntu server设置时区和更新时间
查看>>
【京东咚咚架构演进】-- 好文收藏
查看>>
【HTML】网页中如何让DIV在网页滚动到特定位置时出现
查看>>
文件序列化
查看>>
jQuery之end()和pushStack()
查看>>
Bootstrap--响应式导航条布局
查看>>
Learning Python 009 dict(字典)和 set
查看>>
JavaScript中随着鼠标拖拽而移动的块
查看>>
HDU 1021 一道水题
查看>>
The operation couldn’t be completed. (LaunchServicesError error 0.)
查看>>