实验1 8086汇编指令编码和调试
实验任务2
修改无效,可能因为ROM是只读存储器,无法直接修改
实验任务3
-
e命令以及f命令修改内存单元
-
尝试修改内存单元
实验任务4
-
填空
push[0] (sp)= 002E push[2] (sp)= 002C push[4] (sp)= 002A push[6] (sp)= 0028 pop [6] (sp)= 002A pop [4] (sp)= 002C pop [2] (sp)= 002E pop [0] (sp)= 0030
-
回答问题
1、逻辑地址:0020:30H 物理地址:00230H
2、执行到pop前的栈
3、执行后
4、将pop顺序反转后
实验任务5
- 没有暂停,紧接着执行mov sp 30
- 黄色下划线部分是下一条指令的地址,t指令单步调试触发了中断,栈里保存了一些现场数据
实验任务6
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
实验任务7
-
代码
assume cs:code code segment mov ax,cs mov ds,ax mov ax,0200h mov es,ax mov bx,0 mov cx,17h s: mov al,[bx] mov es:[bx],al inc bx loop s mov ax,4c00h int 21h code ends end
第一空依据:将命令的起始地址给到段寄存器,cs是代码段起始地址
第二空依据:cx就是循环次数设置,根据下图可以看到mov ax,4c00地址偏移为17h,而起始偏移为00h,故cx赋值17h
-
程序的测试
posted on 2021-10-28 11:46 whiteblossoms 阅读(22) 评论(3) 编辑 收藏 举报