第一次作业201983290158李国龙

任务2:

d命令截图:

 

使用e命令修改生产日期所在内存单元:

 

 

结论:这类系统地址无法通过软件修改

 

任务3:

 

f命令填充:

 

任务四:

-a
mov ax, 20
mov ds, ax
mov ss, ax
mov sp, 30
push [0] ; 执行后,寄存器(sp) = 010A
push [2] ; 执行后,寄存器(sp) = 010E
push [4] ; 执行后,寄存器(sp) = 0112
push [6] ; 执行后,寄存器(sp) = 0116
pop [6] ; 执行后,寄存器(sp) = 011A
pop [4] ; 执行后,寄存器(sp) = 011E
pop [2] ; 执行后,寄存器(sp) = 0122
pop [0] ; 执行后,寄存器(sp) = 012

 

问题一:

栈顶的逻辑地址是30 物理地址 0106:0030

问题二:

 

问题三:

pop[0]结束后:

 

pop[6]结束后:

 

 

问题一:

使用mov ss,ax时,此时命令并没有暂停,而是接着执行它的下一条mov sp,30指令

问题二:

00220H~0022fH被设置为栈空间。在ss和sp联合设置栈段时,不响应单步中断,以保证栈段的正确位置。中断时,会对现场进行保护,cpu先将标志寄存器进栈,在把当前的CS值进栈,最后将IP进栈。

 

任务六:

assume cs:code
code segment
start:
mov cx, 10
mov dl, '0'
s: mov ah, 2
int 21h
add dl, 1
loop s
mov ah, 4ch
int 21h
code ends
end start

 

 

任务七:

assume cs:code
code segment
mov ax, cs
mov ds, ax
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, 0017H
s: mov al, [bx]
mov es:[bx], al
inc bx
loop s
mov ax, 4c00h
int 21h

code ends
end

 

posted @ 2021-10-24 14:02  0158李国龙  阅读(23)  评论(3编辑  收藏  举报