实验1 用汇编指令编码和调试
1.实验任务1
2.实验任务2
d命令查看生产日期:

e命令修改生产日期

d命令查看生产日期

结论:不能修改,因为debug环境是软件虚拟出来的,修改数据不会影响真实的生产日期。
3.实验任务3
e命令写入5次03 04

f命令批量写入数据

尝试修改数据

4.实验任务4
填空
-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__
问题1
执行完mov ss,ax 和 mov sp,30 后栈顶的逻辑地址为20:30 物理地址为00230H
问题2

问题3

问题4
出栈顺序改变后,数据产生了变化

5.实验任务5
问题1
指令mov ss,ax 和指令 mov sp,30 同时执行
问题2
073F:0108是存放下一条指令的地址,在执行上一条指令后被存放在栈空间中
6.实验任务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
对程序汇编链接

执行程序

查看PSP

7.实验任务7
完整源码
assume cs:code code segment mov ax, cs mov ds, ax mov ax, 0020h mov es, ax mov bx, 0 mov cx, 17 s: mov al, [bx] mov es:[bx], al inc bx loop s mov ax, 4c00h int 21h code ends end
程序第一条指令地址为CS:IP,这里将cs寄存器的值送入数据段
在mov ax,4c00h 之前的指令总长度为17H字节,所以为完成复制第二个空是17



浙公网安备 33010602011771号