鱼C论坛

 找回密码
 立即注册
查看: 4958|回复: 2

[汇编作业] 监测点9.1

[复制链接]
发表于 2017-8-30 14:28:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.
assume cs: codesg
  data segment
    dw 0
  data ends
  
  codesg segment
    start:
          mov ax, data
          mov ds, ax
          mov bx, 0
          jmp word ptr [bx+1]
  codesg ends
end start

2.
assume cs: codesg
  data segment
    dd 12345678h
  data ends
  
  codesg segment
    start:
          mov ax, data
          mov ds, ax
          mov bx, 0
          mov [bx], bx;crazy
          mov [bx+2], cs;crazy
          jmp dword ptr ds:[0]
  codesg ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-12 21:58:33 | 显示全部楼层
有大佬详细解释一下不~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-26 12:42:33 | 显示全部楼层
飞翔的小胖子 发表于 2021-3-12 21:58
有大佬详细解释一下不~~~

第一题中的 jmp word ptr [bx+1] 表明是段内转移,要使其指向第一条指令,则ds:[bx+1]存放的是第一条指令,而bx=0,则表明ds:[1]处就是存放指令的地方,而ds:[0]是存放数据的,则该地址只能存放一个字型数据或两个字节型数据。

第二题中实际上编码是有点问题的,因为代码段的指令会影响到数据段,但这个就不用管它了,又用不到代码段的数据,其作用只是告诉你有一段数据而已,所以不要去关注它,要不然后面的指令会看得有点乱。
jmp dword ptr ds:[0] 表明是段间转移,则ds:[0]存放的是IP的值,ds:[2]存放的是CS的值,而该程序在刚开始执行时CS:IP肯定指向的是代码段的第一条指令的,这个不懂的话就回去复习,所以直接把CS的值放到 ds:[bx+2]中,0放到[bx]中就行了,而bx=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 17:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表