实验1 8086汇编指令编码和调试

实验内容

2.实验任务2

1)在debug中,使用d命令查看生产日期,生产日期为92年1月1日。

2)使用e命令修改生产时期所在的内存单元,修改后,再次使用d命令查看,发现生产日期并未改变。

3

现象:FFFF0~FFFFF内存单元中的内容并未被修改。

原因:在8086PC机中,C0000 ~FFFFF的空间是ROM的地址空间,我们改写FFFF0~FFFFF的内存单元是无效的,因为这等于改写只读存储器中的内容。

3.实验任务3

1)在debug中,使用e命令,向内存单元填写数据。

   -e b800:0 03 04 03 04 03 04 03 04 03 04

 2)在debug中,使用f命令,向内存单元批量填写数据。

         -f b800:0f00 0f9f 03 04

3使用f命令,向内存单元批量填写数据。

4.实验任务4

(1)填空:

-a

mov ax, 20

mov ds, ax

mov ss, ax

mov sp, 30

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___

(2)回答问题:

问题1

栈顶的逻辑地址:0020H:0030H

栈顶物理地址:00230H

问题2

问题3

没有变化

 

问题4

有变化

 

 

 

5.实验任务5

问题1.

使用t命令单步执行 mov ss, ax 时,并没有单步执行完这一条指令就暂停了,而是把指令 mov sp, 30也紧接着执行了。得出结论:debugt命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

 

 

 

问题2.

根据实验观察,00220H ~ 0022fH作为栈空间使用时,系统会把寄存器的一些数据暂存在栈中,以供后续相关操作使用。经过查阅资料知道dos下系统只有一个栈,也就是说,外部操作未设置栈时,系统自己已经有一个栈在做暂存等相关工作了,当外部进行设置时,暂存等工作就发生在新栈中,因此没有进行push前系统已经先用来暂存相关数据了,这就是我们看到数据的原因。现在知道的暂存数据有csipax,标志寄存器。

6.实验任务6

1)程序源代码:

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 

2)给出使用masm、link对程序汇编链接过程截图,以及,运行可执行程序task5.exe的运行结果截图

 

 

3)给出在debug中查看task5.exe的程序段前缀PSP的截图。这256个字节的内容,前两个字节是CD 20。

7.实验任务7

1

空一:将cs中的程序的段起始地址通过寄存器ax赋值给ds,所以第一个空是ax

空二:首先预估一个值20h,然后根据下图的横线处,CX寄存器中存放的是程序的长度是17个字节,所以第二个空是17h

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

 

 (2)对0:200h开始的内存单元反汇编,发现成功实现把task7.asm中line3-line12的代码复制到了目标内存空间。

实验总结:

(1)通过本次实验,加深了对e命令(修改内存内容),f命令(向内存单元批量填写数据),d命令(查看内存中的内容)、u命令(反汇编命令)等命令的理解与使用方法。

(2)进一步掌握了汇编语言源程序编写→汇编→链接→调试的工具和方法。

(3)在数据入栈和出栈时,对SS:SP的指向变化有了更清晰的认识。

 

posted @ 2021-10-23 16:05  草莓啵啵兔  阅读(109)  评论(2)    收藏  举报