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

实验4 【bx】和 loop 的使用

时间:2023-07-08 16:34:00浏览次数:33  
标签:4c00h 程序 mov 指令 实验 ax bx loop

实验4 【bx】和 loop 的使用

第一问

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

    assume cs:code
    code segment
    mov ax,0h
    mov ds,ax # 设置段前缀
    mov bx,200h
    mov ax,0 # 设置ax从0~63
    mov cx,64
    s: mov ds:[bx],ax
    inc ax
    inc bx
    loop s

    mov ax,4c00h
    int 21h

    code ends
    end
  2. 下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0~0:200处,补全程序。上机调试,跟踪运行结果。

    程序如下(File:LabFour2.asm):

    assume cs:code

    code segment
    mov ax,_(1)_
    mov ds,ax
    mov ax,0020h
    mov es,ax
    mov bx,0
    mov cx,_(2)_

    s:
    mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
    code ends
    end

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

 

  • (1空):CS

    根据题意将“mov ax,4c00h”之前的指令复制到内存0~0:200处。根据程序上下文已经有0020所以ax=“程序的开头处地址”,即ax=cs。cs寄存器存放代码段寄存器。

  • (2空):23。 我们先让(2空)为2即mov cx,2,debug运行程序 我们可以发现 CX=001CH 从“mov ax,4c00h”开始的指令的机器指令是B8 00 4C CD 21,占了5个字节。所以在本实验中我们要复制的代码字节数为001CH-0005H=0017H=23个字节,故CX赋值为23或17H。

    • 在填第二个空那里,cx通用寄存器他有一个特点,就是在我们载入这个程序时,他会记录目前你这个程序有多长,显然这个程序有多长是code segment和code ends里面所有程序的长度,但是我们并不需要mov ax,4c00h及之后的int 21h这两句,因此我们需要扣除这两句的长度(长度为5),即sub cx,5。当然,如果严格按照mov cx,___来写,那么就需要知道mov ax,4c00h之前所有指令的长度,这个长度的确定要比用sub难得多,除非你自己能记得大概的字节长度,否则你得调试出来一个个看。

标签:4c00h,程序,mov,指令,实验,ax,bx,loop
From: https://www.cnblogs.com/alphadoiy/p/17537437.html

相关文章

  • LIMS如何实现实验室仪器设备的数据采集?
    1.简述数据采集功能,数据采集工具将以客户端的形式运行在与设备连接的工作站电脑上,主要负责将设备产生的完整的可输出的原始结果提取到LIMS系统,供实验室人员进行报告生成,汇总等操作。2.实现方式仪器数据采集采用LIMS系统+ActiveMQ消息服务器+客户端的形式实现,数据采集分为两部分,第......
  • 如何实现华东师范大学NLP实验室的具体操作步骤
    实现“华东师范大学NLP实验室”流程为了实现“华东师范大学NLP实验室”,我们需要完成以下步骤:步骤操作1.创建一个新的Python项目在你的开发环境中创建一个新的Python项目2.导入所需的库在项目中导入所需的库,例如NLTK(自然语言处理工具包)3.收集数据收集与华东......
  • 实验一:通过界面监控大数据平台运行状态
    实验一:通过界面监控大数据平台运行状态1.实验任务一:通过界面查看大数据平台状态通过大数据平台Hadoop的用户界面可以查看平台的计算资源和存储资源。打开http://master:8088/cluster/nodes页面,可以查看大数据平台的状态汇总信息.2.实验任务二:通过界面查看Hadoop状态大......
  • 计算机组成原理-运算器实验(1)
    实验2运算器实验(1)学号:    姓名:一、 实验目的1.掌握开源数字电路模拟软件Logisim的使用;2.掌握有符号数加减运算溢出检测的基本方法;3.掌握运算器的组成及其工作原理;4.验证4位函数发生器74181的组合功能。 二、实验设备EL-JY-II型计算机组成原理实验系统一套,排线若......
  • 如何实现Python线性回归模型的实验报告的具体操作步骤
    Python线性回归模型的实验报告简介线性回归是一种常用的机器学习模型,用于预测一个或多个自变量与因变量之间的线性关系。它是一种简单但强大的模型,被广泛应用于各个领域。本实验报告将介绍如何使用Python实现线性回归模型,并进行实验验证其预测能力。数据集首先,我们需要准备一......
  • 正点原子内存管理实验室,keil mdk 和stm32cubeide gcc的函数替换
    https://www.cnblogs.com/RegressionWorldLine/p/11968467.html转载记录下 STM32.ld链接文件分析及一次bug解决过程问题描述原子板的代码中含有一个关于使用外部SRAM的功能,由于本人的开发板的SRAM只有512K,因此稍微修改了一下代码,同时使用GCC进行编译,但是这里却报错了,源码如......
  • 汇编语言(王爽)实验10.2
    assumecs:codecodesegmentstart:movax,4240Hmovdx,000FHmovcx,0AHcalldivdwmovax,4c00hint21hdivdw:movbx,ax;X的低16位暂存在bx中movax,dxmovdx,0divcxmovsi,ax......
  • eNSP 实验一
    目录一、1.布局2.配置3.测试连通性二、1.布局2.测试连通性三、1.布局2.测试连通性3.配置一、1.布局在eNSP中,新建一个拓扑图,在左侧直接移一个路由器和两台主机,设置第一台主机的IP地址为192.168.1.1,子网掩码为255.255.255.0,网关为192.168.1.254;设置第二台主机的IP地址为192.168.2......
  • 数据链路层实验
    目录实验一实验二实验三结束实验一在eNSP软件中,设置一台交换机和四台主机,我们把PC3的ip地址设为192.168.1.1,子网掩码设为255.255.255.0,把PC4的ip地址设为192.168.1.2,子网掩码设为255.255.255.0。第一步PC3向交换机发送数据帧,然后第二步交换机向其他各个PC寻求回应,第三步PC4回应......
  • eNSP——华为的网络工具平台下的小实验
    eNSP环境小实验实验一主机与路由器的连接配置先配置发送方主机1、接收方主机2的IP地址、网关。  双击AR1进入编辑命令行页面<Huawei>utmInfo:Currentterminalmonitorisoff.<Huawei>sysEntersystemview,returnuserviewwithCtrl+Z.[Huawei]intg0/0/0......