第一次作业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