汇编语言-[bx]和loop指令和多个段
5.1 [BX]和内存单元的描述
要完成描述一个内存单元,需要两种信息:
内存单元的地址:
- 可以用 [0] 表示一个内存单元, 0 表示单元的偏移地址,段地址默认在 ds 中;
- 同样也可以用 [bx] 表示一个内存单元,它的偏移地址在 bx 中;
内存单元的长度(类型):
- 将一个内存单元的内容送入 ax ,这个内存单元的长度就为 2 字节(字单元),存放一个字;
- 将一个内存单元的内容送入 al,这个内存单元的长度就为 1 字节(字节单元),存放一个字节;
5.2 Loop 指令
loop 指令和 cx 相配合实现循环功能的,cx中存放循环的次数。
loop指令的格式是:loop 标号,CPU执行loop指令的时候,要进行两步操作
- (cx)=(cx)- 1;
- 判断 cx 中的值,不为零则转至标号处执行程序,如果为零则向下执行。
其框架为:
mov cx, 循环次数
s:
循环执行的程序段
loop s
5.3 包含多个段的程序
在8086模式限制下如果数据,栈和代码需要的空间超过64KB,就不能放在一个段中,应该把数据,栈和代码放在对应的代码段,栈段,数据段;
例如:
assume cs:code,ds:data,ss:stack
data segment
dw 0001h,0002h,0003h,0004h,0005h,0006h,0007h,0008h ;dw定义字形数据
data ends
stack segment
db 0,0,0,0,0,0,0,0 ;定义字节型数据
stack ends
code segment
start:
mov ax,data ;把数据段地址放入ax
mov ds,ax
mov ax,stack ;把栈段地址放入ax
mov ss,ax
mov sp,18h ;设置栈顶指向18h ,18h = 数据段8个字+栈段8个字节共24字节换成16进制。
mov ax,4c00h
int 21h
code ends
end start ;end除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。在这指明了程序的入口在标号 start 处。
汇编语言-[bx]和loop指令和多个段的更多相关文章
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- 80806汇编(5)——[BX]和Loop指令
80806汇编(5)--[BX]和Loop指令 已经好久没写点东西了,国庆节就一直想弄个个人网站,这段时间一直在弄那个,虽然有现成的框架(Hexo),但是总想弄出自己的效果来,但是最后还是有些差强人意 ...
- [汇编学习笔记][第五章[BX]和loop指令]
第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...
- 王爽汇编第五章,[bx]和loop指令
目录 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 例子: 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 [bx]之前我们介绍寄存器的时候,已经很详细的说明过了,b ...
- 小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似 ...
- 第五章 [BX]和loop指令
5.1 [bx] [bx]是什么 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0. 例如: mov ax, [0] 内存以字节为单位:ax以字(16bit = 2Byte)为单位:al ...
- [bx]和loop指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 汇编:汇编语言实现冒泡排序(loop指令实现)
;=============================== ;循环程序设计 ;loop指令实现 ;冒泡排序 ;for(int i=0;i<N;i++){ ; for(int h=0;j&l ...
- [汇编语言]-第五章[bx]和loop指令
1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0 mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在d ...
随机推荐
- Do jobs|permanent|secure job|Move|Look after|provide sb with sth|Move|Enjoy a good time|Learn about|Be fond of|Have a clearer idea|String quarter|Be subject to|A has little with B|Pigment
Do jobs|work jobs Long-terms|permanent Gain jobs/secure job Move|go to |stay in |live in|settle down ...
- AI动作捕捉技术,会让制造业大幅度降低成本吗?
现代动作捕捉系统应该是起源于100多年前的动画工业,通过一种叫做"动态遮罩或影像描摹"的技术,动画师们可以获得流畅的.栩栩如生的动作:后来到了20世纪80年代,动画师们设计出带有活 ...
- 基于css完成网页的国际化
css完成国际化 前提 在日常处理国际化的时候,通常是将key通过类似intl.xx(key)转换为对应环境的文案,可是如果需要在css中加入对应逻辑应该怎么做呢(比如在after的伪元素中显示不同的 ...
- EXAM-2018-7-24
EXAM-2018-7-24 未完成 [ ] G 签到水题 A J F A:英文字母有2426个 J:注意long long D:Transit Tree Path 我直接套了单源最短路的一个模板,有 ...
- [LC] 112. Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...
- 吴裕雄--天生自然 R语言开发学习:使用键盘、带分隔符的文本文件输入数据
R可从键盘.文本文件.Microsoft Excel和Access.流行的统计软件.特殊格 式的文件.多种关系型数据库管理系统.专业数据库.网站和在线服务中导入数据. 使用键盘了.有两种常见的方式:用 ...
- Qt 线程池QThreadPool类、QRunnable类
QThreadPool类 用来管理 QThreads.此类中的所有函数都是线程安全的. 主要属性: 1.activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThrea ...
- [Linux] Windows 下通过SecureCRT 访问 Linux
不愿意装双系统的,可以借助虚拟机(Vmware, Virtual PC等) 安装linux 进行使用. 至于如何使用虚拟机安装Linux 这部分,很简单: 下载好需要安装的Linux ISO 镜像文件 ...
- es 查询分词字段为空的数据
{ "query": { "bool" : { "filter" : { "script" : { "scri ...
- git本地仓库目录问题
git安装后修改默认的路径:每次打开git bash后都会进入这个目录 https://blog.csdn.net/weixin_39634961/article/details/79881140 在 ...