实验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片段定位)

JSP 设计教师与学生不同登陆界面(带验证码)

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

chapter1.高通量序列实验简介:设计与生物信息学分析

VSCode自定义代码片段4——cli的终端命令大全

web代码片段