首页 > 其他分享 >实验4 [bx]和loop的使用

实验4 [bx]和loop的使用

时间:2022-08-28 19:55:08浏览次数:59  
标签:补全 程序 mov 实验 cs ax bx loop

1.编程,向内存0:200~0:23f依次传送数据0~63(3fh),程序中只能用9条指令,包括mov ax,4c00h和int 21h

assume cs:code

code segment
  mov ax,0020h
  mov ds,ax

  mov bx,0

  mov cx,64

s:   mov [bx],bl
  inc bx
  loop s

  mov ax,4c00h
  int 21h

code ends
end

2.

3、下面的程序的功能是将"mov ax,4c00H"之前的指令复制到0:200处,补全程序

(1)复制的是什么?从哪里到哪里?
答:复制的是程序的指令,从"mov ax,(1)“开始到"loop s”。
(2)复制的什么?有多少个字节?你如何知道要复制的字节的数量
复制的是程序的指令,先运行程序,根据CX寄存器的值知道程序的长度(字节)。然后在减去从"mov ax,4c00h"指令开始的程序长度。

程序加载到内存中时,cs:ip会初始化为程序的首个地址,而作为程序段的段首,ip为0,所以通过ax将cs的值赋值给ds

因为不是所有代码都要复制,而程序加载后cx寄存器会存有整个程序的字节数,再通过debug算出最后两条代码的字节数

assume cs:code
code segment

  mov ax,cs ;cs为补全处内容
  mov ds,ax

  mov ax,0020H
  mov es,ax

  mov bx,0
  mov cx,0 ;0为暂时的补全处内容

s: mov al,[bx]
  mov es:[bx],al
  inc bx
  loop s

  mov ax,4c00H
  int 21H

code ends
end

观察到cx的值为001CH,即整个程序占001CH个字节,CS:IP为076C:0

 

该程序从076C:0000开始,到076C:001B结束,共001CH个字节,而后两行代码占用的字节数为(001B-0017+1)5H字节,第二个补全的地方应填(001C-0005)0017H,或者看最后一条需要复制的代码占的内存单元为0015H和0016H,所以长度为0017H

最终代码为

assume cs:code
code segment

mov ax,cs ;cs为补全处内容
mov ds,ax

mov ax,0020H
mov es,ax

mov bx,0
mov cx,0017H ;0017H为补全处内容
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s

mov ax,4c00H
int 21H

code ends
end

 



标签:补全,程序,mov,实验,cs,ax,bx,loop
From: https://www.cnblogs.com/cangshiqian/p/16633487.html

相关文章

  • 五--[BX]和loop指令
    用[0]表示一个内存单元时,0表示偏移地址,段地址默认在ds中,单元的长度(类型)由具体指令中的其他对象指出我们定义的描述性符号:“()”,表示一个寄存器或内存单元中的内容,比如(ax......
  • 21级数据结构与算法实验2——链表
    21级数据结构与算法实验2——链表28天7-1单链表的创建及遍历分数30作者陈晓梅单位广东外语外贸大学读入n值及n个整数,建立单链表并遍历输出。输入格式:读入n及......
  • UE导入FBX、GLTF模型
    楔子虽然做了很多年的三维可视化,不过都主要还是web端开发为主(webgl,threejs,有兴趣的读者也可以关注下我的相关专栏)。最近准备入手一下UE,顺便做一下知识梳理。所以文章可能......
  • webxone使用
    webxone使用主窗口 uses wxoExec;procedureTfMain.FormCreate(Sender:TObject);beginAlign:=alNone;Position:=poDesigned;WindowState:=wsNormal;......
  • 实验6:安卓APP首页
    2022年夏季《移动软件开发》实验报告姓名和学号? 本实验属于哪门课程?中国海洋大学22夏《移动软件开发》实验名称?实验6:安卓APP首页博客地址?https://www.cnb......
  • HCIA-datacom 7.1 实验 构建简单IPv6网络
    实验介绍IPv6(InternetProtocolVersion6)也被称为IPng(IPNextGeneration)。它是Internet工程任务组IETF(InternetEngineeringTaskForce)设计的一套规范,是IPv4(InternetP......
  • [k8s]node-local-dns CrashLoopBackOff
    1.修改配置文件/etc/kubernetes/plugins/dns-cache/nodelocaldns.yamlsed's/k8s.gcr.io/gcr.azk8s.cn\/google_containers/gs/__PILLAR__DNS__SERVER__/192.168.0.10/......
  • HCIA-datacom 6.1 实验 构建基础WLAN网络
    前言:最近事情太多了,更新不会很稳定!今天遇到一个很恶心人的事情,分享知识是一件开心的事,但有些人好像觉得这是他谋生的手段一样,没得意思。本来wlan的实验大概在周一就写完了......
  • 【实验记录】8月24日
    因为像SVA-D、SVA-E等,在我们之前对Roadmap数据的分析中,我们发现其在许多组织中都有所谓的转录的活性。因此,我也想通过组蛋白修饰的数据来看一看。H3K36me3cp/home/xx......
  • 实验6:安卓APP首页
    2022年夏季《移动软件开发》实验报告姓名:窦海彤学号:20020007011姓名学号窦海彤,20020007011课程中国海洋大学22夏《移动软件开发》实验名称实验6:安卓app......