鱼C论坛

 找回密码
 立即注册
查看: 2863|回复: 1

[汇编作业] 检测点9.1

[复制链接]
发表于 2018-6-30 15:53:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 奥普瓯江 于 2018-6-30 15:53 编辑

(1)程序如下
assume cs:code

data segment
      ?
data ends

code segment
start:  mov ax, data
         mov ds, ax
         mov bx, 0
         jmp word ptr [bx + 1]
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义那些数据

答:应该在data段中定义dw 0,dw每次在内存中申请2个字节的空间,所以jmp word ptr 一次取的是一个字2个字节是可以满足的
(2)程序如下
assume cs:code ds:data

data segment
   dd 12345678h
data ends

code segment
start: mov ax, data
        mov ds, ax
        mov bx, 0
        mov [bx],
        mov [bx + 2], 
        jmp dword ptr ds:[0]
code ends
end start
补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令

答:mov [bx], 0
      mov [bx + 2], cs
      内存中一共储存了2个字或称之为4个字节,jmp段间跳转,cs等于高位字节ip等于低位字节


(3)用Debug查看内存,结果如下:
2000:1000 BE00 06 00 00 00 ..........
则此时,CPU执行指令
mov ax, 2000h
mov es, ax
jmp dwordptr es:[1000h]
后,(CS )= ?, (IP) = ?

答:(CS) = 0006,(IP)= 00BE
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-11 14:14:02 | 显示全部楼层
(1)jmp word ptr [bx + 1],偏移的字单元是ds:[1]和ds:[2]。所以只要至少需要定义三个0

(2)应该是mov [bx], bx,而不是mov [bx], 0吧。操作数是立即数和内存单元需要显性指明要访问内存单元的长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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