UNIT FIVE TO EIGHT
内存单元间接表示
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的更多相关文章
- ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...
- ABP源码分析十:Unit Of Work
ABP以AOP的方式实现UnitOfWork功能.通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类 ...
- 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 ...
- VS2012 Unit Test 个人学习汇总(含目录)
首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.a ...
- VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式
[1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...
- VS2012 Unit Test——Microsoft Fakes入门
如题,本文主要作为在VS2012使用Fakes的入门示例,开发工具必须是VS2012或更高版本. 关于Fakes的MSDN地址:http://msdn.microsoft.com/en-us/libr ...
- MTU(Maximum transmission unit) 最大传输单元
最大传输单元(Maximum transmission unit),以太网MTU为1500. 不同网络MTU如下: 如果最大报文数据大小(MSS)超过MTU,则会引起分片操作. 路径MTU: 网路 ...
- Simulink Memory vs Unit Delay
Memoryブロック.Unit Delayブロック共に前回の入力値を出力しますが.動作するタイミングが異なります. ●Memoryブロック シミュレーションの各時刻(ステップ)で動作し.「1ステップ」 ...
- GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现
GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现 RNN GRU matlab codes RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着 ...
- Unit Testing with NSubstitute
These are the contents of my training session about unit testing, and also have some introductions a ...
随机推荐
- Delphi获取程序版本号
参考: http://www.delphitop.com/html/hanshu/4627.html procedure GetVersionInfo(const FileName:string; v ...
- SQL面试题,工作整理sql
一.数据库和算法 表名:student,name,course,score 张青 语文 72 王华 数学72 张华 英语 81 张青 物理 671.用sql查询出& ...
- java异常信息打印
如果你不仅想在日志中查看异常信息,也想把异常信息保存起来作为数据查看,那么你可以这样做 public void printException(Exception e) { ByteArrayOutpu ...
- (0514)芯王国-志锐-Sd卡高速控制-AXI验证
(1)commit (2)core (3)generate (4)struct 结构体 (5)
- GoLand 和 Pycharm的 快捷键设置与常用插件
GoLand 插件 Gopher 美化进度条,让等待更优雅. CodeGlance pro 旁边浏览框. 快捷键设置 删除行: ctrl + L 重新格式化代码 ctrl + K 开始新行 ctrl ...
- QTcpSocket 设置接收数据延时等待时间
/* 客户端接入槽函数 */ void TcpServer::slotNewConnect(void) {/* 获取连接的客户端句柄 这里设置刷新数据时间 1ms */ QTcpSocket *pSo ...
- Twenty-six
条件渲染指令 v-if:动态移除或创建元素(如果刚进入页面的时候,某些元素默认不需要被显示,而且后期这个元素很可能也不需要被展示出来) v-show: 添加或移除display:none的样式(频繁切 ...
- Gradle 安装配置
1 下载 官网各版本下载地址如下: https://gradle.org/releases/ 2 安装 将下载后的压缩包(此处以 gradle-6.5-all.zip 为例)解压到某个目录进行安装. ...
- 百题计划-6 codeforces 651 div2 E. Binary Subsequence Rotation 01序列集合划分,2个队列处理
https://codeforces.com/contest/1370/problem/E 队列元素以末尾字符为结尾的序列就好了,这里队列里的元素不重要,队列size重要 #include<bi ...
- Linux系统配置安装jdk
菜鸟新人搭建服务器,目前不深入原理,只配置 1.官方自行下载Linux版本jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk ...