实验任务1

自行练习

 实验任务2

给出使用d命令查看生产时期的截图

给出使用e命令修改生产日期所在内存单元的截图,以及,修改后,再次使用d命令查看的截图结论:能否修改,以及,原因分析

实验1 8086汇编指令编码和调试_寄存器

 时间并未被修改,因为生产日期在C0000~FFFFF地址范围内,在其中写入数据是无效的,相当于只改写只读存储器中的内容

 

 实验任务3

给出在debug中使用e命令修改内存单元的命令,及,效果截图

给出在debug中使用f命令批量填充内存单元的命令,及,效果截图

尝试修改内存单元,或,数据后的效果截图

实验1 8086汇编指令编码和调试_只读存储器_02

 

实验1 8086汇编指令编码和调试_寄存器_03

实验1 8086汇编指令编码和调试_数据_04

  实验任务4

填空

 002EH 002CH 002AH 0028H 002AH 002CH 002EH 0030H

问题1 栈顶的逻辑地址为0020:0030,物理地址为0230H

问题2实验1 8086汇编指令编码和调试_寄存器_05

 

问题3实验1 8086汇编指令编码和调试_数据_06

 

问题4实验1 8086汇编指令编码和调试_物理地址_07

 

数据空间内数据变了

实验任务5

问题1单步执行完mov ss,ax后没有暂停,而是紧接着执行下一条指令,即mov sp,30,这是因为其修改了栈段寄存器SS。

问题2原先黄线上为IP和CS,随着数据入栈,也跟着往前移,同时值也和IP、CS保持一致,原因可能是:在响应中断时将CS、IP压入了栈中。实验1 8086汇编指令编码和调试_只读存储器_08

实验任务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

 

 实验1 8086汇编指令编码和调试_物理地址_09

 

实验1 8086汇编指令编码和调试_只读存储器_10

 

实验1 8086汇编指令编码和调试_寄存器_11

  实验任务7

assume cs:code

code segment

mov ax,cs

mov ds,ax

mov ax,0020h

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决定,所以第一空填cs

loop指令的下一条指令的地址117减去100(17H),所以第二空填17h

实验1 8086汇编指令编码和调试_只读存储器_12

 

 

实验1 8086汇编指令编码和调试_物理地址_13