内存单元间接表示

mov dl, [0] :直接寻址

mov bx, 0
mov dl, [bx]:间接寻址

loop指令

1.语法

loop 标号

2.CPU执行指令过程

① (cx) ← (cx) - 1
② 判断cx的值是否为0。
如果(cx) ≠ 0,跳转到标号处执行;
如果(cx) = 0, 执行loop后面的其它指令。

(常用)

mov cx,次数

...

loop 标号

inc指令

Tips

默认情形下,无论是直接给出的偏移地址,还是通过bx间接给出的偏移地址,都是取ds的值作为段地址来计算物理地址。

可以通过增加「段前缀」改变默认状况。

伪指令

在代码段中用栈

示例:

advantage

① 程序结构清晰
② 对于8086而言,可以使用多个段,解决长度超64KB的限制问题

代码、数据、栈tips

① 使用伪指令segment和ends定义逻辑段后,究竟是用作代码段、数据段还是栈,由程序员指定。
② 使用assume仅仅表示将某个逻辑段和某个段寄存器关联起来;真正当作特定的段使用,需要在代码段中设置相应的段寄存器值,如ds, ss。
③ 段名代表的是段地址,是常数。不能使用mov直接送入段寄存器。

and&or指令

and

and是按位逻辑与,即都为一才赋一

用法:

① and指令语法格式及对操作数要求与add指令同
② 可以实现将操作数指定位设置为0

or

or是按位逻辑或,即有一即赋一

用法:

① or指令语法格式及对操作数要求与add指令同
② 可以实现将操作数指定位设为1

 应用:

字母大小写的转换:

数字字符与数值的转换

其他灵活的内存地址表示

用[bx + idata]表示表示内存单元。idata表示常数。

用[si]表示表示内存单元。
用[si + idata]表示表示内存单元。idata表示常量。

用[di]表示表示内存单元。
用[di + idata]表示表示内存单元。idata表示常量。

用[bx+di], [bx+si]表示表示内存单元。
用[bx+di+idata], [bx+si+idata]表示表示内存单元。

其他

UNIT FIVE TO EIGHT的更多相关文章

  1. ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...

  2. ABP源码分析十:Unit Of Work

    ABP以AOP的方式实现UnitOfWork功能.通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类 ...

  3. Failed to stop iptables.service: Unit iptables.service not loaded.

    redhat 7 [root@lk0 ~]# service iptables stop Redirecting to /bin/systemctl stop iptables.service Fai ...

  4. VS2012 Unit Test 个人学习汇总(含目录)

    首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.a ...

  5. VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式

    [1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...

  6. VS2012 Unit Test——Microsoft Fakes入门

    如题,本文主要作为在VS2012使用Fakes的入门示例,开发工具必须是VS2012或更高版本. 关于Fakes的MSDN地址:http://msdn.microsoft.com/en-us/libr ...

  7. MTU(Maximum transmission unit) 最大传输单元

    最大传输单元(Maximum transmission unit),以太网MTU为1500. 不同网络MTU如下: 如果最大报文数据大小(MSS)超过MTU,则会引起分片操作.   路径MTU: 网路 ...

  8. Simulink Memory vs Unit Delay

    Memoryブロック.Unit Delayブロック共に前回の入力値を出力しますが.動作するタイミングが異なります. ●Memoryブロック シミュレーションの各時刻(ステップ)で動作し.「1ステップ」 ...

  9. GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现

    GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现 RNN GRU matlab codes RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着 ...

  10. Unit Testing with NSubstitute

    These are the contents of my training session about unit testing, and also have some introductions a ...

随机推荐

  1. git 提示 fatal: Authentication failed for....

    在我们进行clone 或 pull 或 push的时候,出现这个问题,先想一下是不是自己的账号密码是不是改了 一般情况下通常需要重新重置一下验证设置 执行以下命令: git config --syst ...

  2. 002 jmeter入门级写脚本及参数化

    1.jmeter入门脚本 步骤分析:测试计划(项目名称)-线程组(业务流程)-http请求(接口名称)-察看结果树 编写脚本四要素:测试计划.至少有一个线程组.至少有一个取样器.必须要有监听器 测试计 ...

  3. 梦想Android版CAD控件(安卓CAD二次开发,安卓CAD控件)2023.02.26更新

    下载地址:https://www.mxdraw.com/ndetail_40240.html1. 增加willBeReturnStart事件2. 增加使用OpenGL缓存3. 优化界面响应时间4. 修 ...

  4. The Nine Arches Bridge

  5. 大小写字符转换【Sql Server和C#两种写法】

    案例:Var Str = "abdCnd" 如何将Str = "ABDCND"? Sql Server写法:upper(Str)   ==>  Lower ...

  6. go 使用mysql

    package main /* 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行, 然而,有些时候我们并不需要把整个包都导入进来, ...

  7. gson属性disableHtmlEscaping对等于号的转义\u003d,注解符号Expose,SerializedName,Since和Until

    gson属性disableHtmlEscaping对等于号的转义\u003d,注解符号Expose,SerializedName,Since和Until package com.example.cor ...

  8. 【git】2.3查看提交历史

    资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4% ...

  9. #maxlength vs #size form api reference

    #maxlength Used by: password, textfield Description: The maximum amount of characters to accept as i ...

  10. eccodes 使用girb_filter工具

    参考自ECMWF网站https://confluence.ecmwf.int/display/OPTR/ecCodes%3A+GRIB+and+BUFR+data+decoding+and+encod ...