内存单元间接表示

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. requests库获取指定关键词的图片,并保存到本地

    var code = "45f4267f-9476-44ca-ac68-6d32aad2d4e1" 源码地址:https://gitee.com/myrensheng/data_a ...

  2. 下载成功安装maven,卸载替换eclipse自带的报错的maven

    博主呢用eclipse自带的maven新建了一格maven项目,结果报了下面的错误:Could not resolve archetype org.apache.maven.archetypes:ma ...

  3. SQL面试题,工作整理sql

    一.数据库和算法   表名:student,name,course,score    张青  语文  72    王华  数学72    张华  英语 81    张青 物理 671.用sql查询出& ...

  4. vue整体回顾

    vue大回顾 1 前端发展史 react vue---> 前端工程化---> 前后端分离 大前端:flutter uni-app 2 Vue介绍 单页面应用(spa) 组件化开发 mvvm ...

  5. Linux装cudnn

    https://stackoverflow.com/questions/66977227/could-not-load-dynamic-library-libcudnn-so-8-when-runni ...

  6. satpy 处理卫星 FY4A 数据

    读取数据并画图 import os import glob from datetime import datetime, timedelta from satpy.scene import Scene ...

  7. 在CentOS 7.4下配置VNC Server服务

    安装步骤 1. 查询系统是否安装vnc-server [root@localhost ~]# rpm –qa | grep vnc 如果有返回值,类似于vnc-server-的值,说明已经安装了vnc ...

  8. 【C++】关于智能指针的简单学习

    智能指针 示例类: class String { private: string m_value; public: String(string str) :m_value(str) { cout &l ...

  9. 使用Tablayout出现标题消失的原因:setupWithViewPager()的大坑

    TabLayout使用addTab方法添加标题,调用setupWithViewPager方法绑定ViewPager tabLayout.addTab(tabLayout.newTab().setTex ...

  10. go new和make区别

    new用于任何类型,返回的是指针,多用在对象,结构体 make类型只用于slice,map,channel,返回引用,为什么只这三个用make,因为它们都有要初始化的数据,参数golang 内置函数n ...