实验四
Posted zwlovexx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验四相关的知识,希望对你有一定的参考价值。
1. 实验内容1
(1)源代码
assume cs:code
code segment
mov ax, 0b800h
mov ds, ax
mov bx, 07b8h
mov ax,0403h
mov cx, 16
s:mov [bx], ax
inc bx
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end
运行结果:
(2)将源代码程序中字数据0403H→修改为0441H,再次运行,截图显示运行结果。
2. 实验内容2
(1)源代码:
assume cs:code
code segment
mov ax, 20h
mov ds, ax
mov bx, 0
mov cx, 64
s:mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
(2)汇编、链接无误后,灵活使用 debug 的 t 命令、g 命令、p 命令调试,用 d 命令 查看0:200~0:23F,确认是否将0~63传送至此段内存区域。
调试:
先用G命令执行到循环
再用P命令执行循环
最后用T命令和P命令完成调试
用D命令确认将0~63传送至此段内存区域
3. 实验内容3
(1)源代码:
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)汇编连接后,灵活使用debug的t命令、g命令、p命令调试,用d命令查看0:200 之后的若干字节,观察是否将mov ax, 4c00h之前的指令复制到指定内存,这部分要求有截 图,并以文字方式说明空白处填写依据。
调试:
先用G命令执行到循环
再用P命令执行循环
最后用T命令和P命令完成调试
用D命令查看0:200 之后的若干字节,观察到已将mov ax, 4c00h之前的指令复制到指定内存
填空:
【1】因为程序复制的是指令,所以要先将代码段寄存器CS中的值给AX,AX再给DS。
【2】cx的值即循环的次数,所以先假设CX为32,执行后查看到下图中CX为001C(程序长度),而mov ax, 4c00h和int 21h分别为2和3,用CX减去这俩就得到cx为17h。
实验总结与体会:
调试时各种命令需要灵活运用才行,不然要么一直TTTT,要么看不到细节。在实验三中还学到了复制指令的程序。
以上是关于实验四的主要内容,如果未能解决你的问题,请参考以下文章