实验1 8086汇编指令编码和调试
实验任务2
(2)使用e命令修改生产时期所在的内存单元,修改后,再次使用d命令查看

结论:内存中的内容不可以修改。因为这段内存是ROM内存单元,是只读的,不可以修改。
实验任务3
(1)在debug中使用e命令修改内存单元

(2)在debug中使用f命令批量填充内存单元

(3)修改内存数据后的结果

实验任务4
1 -a 2 mov ax, 20 3 mov ds, ax 4 mov ss, ax 5 mov sp, 30 6 push [0] ; 执行后,寄存器(sp) = 002E 7 push [2] ; 执行后,寄存器(sp) = 002C 8 push [4] ; 执行后,寄存器(sp) = 002A 9 push [6] ; 执行后,寄存器(sp) = 0028 10 pop [6] ; 执行后,寄存器(sp) = 002A 11 pop [4] ; 执行后,寄存器(sp) = 002C 12 pop [2] ; 执行后,寄存器(sp) = 002E 13 pop [0] ; 执行后,寄存器(sp) = 0030
问题1:题目要求是把00220H ~ 0022fH用作栈空间。指令 mov ss, ax 和 mov sp, 30 执行后,
答:逻辑地址:0020:0030
问题2:单步调试到汇编指令 push [6] 执行结束, pop [6] 执行之前,使用 d 20:20 2f 查看此
问题3:汇编指令 pop [0] 执行结束后, pop [0] 指令执行结束后,使用d命令 d 20:0 7 查看此
数据空间内数据有变化
问题4:如果把最后四条指令改成截图中的顺序, pop [6] 指令执行结束后,使用d命令 d 20:0 7
可以看出数据空间内数据有变化
实验任务5
问题1:使用t命令单步执行 mov ss, ax 时,是单步执行完这一条指令就暂停了吗?后面的指令 mov
答案:不是单步执行完mov ss,ax就暂停,t命令在执行修改ss的指令时,下一条指令也紧接着被执行,因此mov sp,30是在t命令执行完mov ss,ax后执行的。
问题2:根据汇编指令,前三条指令执行后,00220H ~ 0022fH被设置为栈空间。并且,初始时,已通
过f命令将初始栈空间全部填充为0。观察单步调试时,栈空间00220H ~ 0022fH内存单元值的变化,特
别是图示中黄色下划线表示出的数据值。根据实验观察,尝试思考和分析原因。
答案:t命令是单步执行命令,而栈空间的内存单元值变化与单步执行有关,在单步执行后中断,将CS IP的值存入栈内。
实验任务6
程序源码:
1 assume cs:code 2 3 code segment 4 start: 5 mov cx, 10 6 mov dl, '0' 7 s: mov ah, 2 8 int 21h 9 add dl, 1 10 loop s 11 12 mov ah, 4ch 13 int 21h 14 code ends 15 end start


1 assume cs:code 2 code segment 3 mov ax, cs 4 mov ds, ax 5 mov ax, 0020h 6 mov es, ax 7 mov bx, 0 8 mov cx, 17h 9 s: mov al, [bx] 10 mov es:[bx], al 11 inc bx 12 loop s 13 14 mov ax, 4c00h 15 int 21h 16 code ends 17 end
填写依据:1.程序代码段地址是cs,要将寄存器cs中的内容赋值给ax,然后再存入段地址ds。
2.先赋值给cx进行debug,r命令得到cx是21h,但要把 mov ax, 4c00h 之前的指令复制到内存0:200开始的连续的内存单元,因此cx是21h-5h=17h。
(2)在debug中调试,使用g命令将程序执行到 loop s 之后、 mov ax, 4c00h 之前,然后,使用u命令对0:200开始的内存单元反汇编,确认是否把task7.asm中line3-line12的代码复制到了目标内存空间。
五、实验总结
(1)通过本次实验,我发现仅仅从书上获取知识远远不足以支撑我写本次实验,需要每次的亲自实践和查阅相关资料,了解更多的内容才能做好。
(2)在实验中,更深刻的理解了ds的存放空间。ds是段寄存器,其偏移地址为0,因此要注意内存区的地址是ds:0,同时cs=ds+10h,加上了程序段前缀,psp用来程序间的通信,因此指令部分需要从cs:ip指向的内存空间开始。对这一知识点有了更深刻的理解。
(3)在实验中也遇到了一些困难和错误,因为一些路径放置和代码编写问题困扰了很久,通过尝试修改路径等方法解决了问题,很好的锻炼了动手编写代码的能力。
浙公网安备 33010602011771号