实验4
Posted xyl744188
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验4相关的知识,希望对你有一定的参考价值。
1、综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H.
1 assume cs:code 2 code segment 3 mov ax,0b800h 4 mov ds,ax 5 mov bx,07b8h 6 mov cx,8h 7 8 s:mov [bx],0403H 9 inc bx 10 inc bx 11 loop s 12 13 mov ax,4c00h 14 int 21h 15 code ends 16 end
哇的一声哭了出来,我出现了2个错误
在这卡了挺久的,万万没想到竟然是冒号没用英文输入法输入。
将line8中的0403H改为0441H,图案变成下面的样子:
2、综合使用loop,[bx],编写完整汇编源程序,实现向内存0:200~0:23F依次传送数据0~63(3FH)
(1)综合使用loop,[bx],mov实现。
assume cs:code code segment mov ax,0 mov ds,ax mov bx,200h
mov cx,64 s:mov [bx],al inc al
inc bx loop s mov ax,4c00h int 21h code ends end
先用u命令反汇编一下;
用g命令直接运行到循环的地方;
在循环体内,先用t命令单步执行,等遇到loop命令时,再用p命令执行,使debug自动重复执行循环体中的命令;
当遇到int 21h时,用p命令运行。
(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax, cs //通过之前的学习,我们可以得知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
随意给cx赋一个常数,然会反汇编,可以看到mov ax,4c00h前代码长度为17h个字节,故循环17h次
以上是关于实验4的主要内容,如果未能解决你的问题,请参考以下文章
[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)