[bx]和loop指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}
| mov ax , [bx] ; 将一个内存单元的内容送入 ax , 这个内存单元的长度为 2字节(字单元),存放一个字,偏移地址在 bx 中,段地址在 ds 中。 |
| mov al , [bx] ; 将一个内存单元的内容送入 ax , 这个内存单元的长度为 1字节(字节单元),存放一个字节,偏移地址在 bx 中,段地址在 ds 中。 |
| eg:mov ax , [idata] 代表 mov ax , [1] 、mov ax , [2] 、mov ax , [3] ... mov bx , idata mov ds , idata 非法指令 |
Loop 指令:loop 标号
| 计算2^12次方 assume cs:code code segment mov ax , 2 mov cx , 11 s: add ax , ax loop s mov ax , 4c00h int 21h code ends end |
mov ax , 2000h ; 将 ds:bx 单元中的数据送入 al mov ds , ax mov bx , 0 mov al , [bx] ;将 2000h:0 处的值到al中 \ mov al , [0] 在debug中和上面作用一样,masm中就是把0放到al中 mov al , ds:[0] ; [0] 前显示给出段地址所在寄存器 |
| 要将字节单元(8位)数据累加到一个16位寄存器的方法,先把这个8位数据放到一个16位寄存器的低8位,高8位置0,最后在累加到16位的寄存器。 mov ax , ffffh mov ds , ax mov dx , 0 ; 初始化累加器 mov al , ds:[0] ; 8位字节单元数据放到ax的低8位 mov ah , 0 ;高8位置0 add dx , ax |
| 将内存 ffff:0~ffff:b 单元中的数据拷贝到 0:200~0:20b 单元中: assume cs:code code segment mov bx , 0 mov cx , 12 s: mov ax , ffffh mov ds , ax mov dl , [bx] mov ax , 0020h mov ds , ax mov [bx] , dl inc bx loop s mov ax , 4c00h int 21h code ends end 最直接的做法,但是每次都两次设置 ds |
改进: assume cs:code code segment mov ax , ffffh mov ds , ax mov ax , 0020 mov es , ax ;用附加段寄存器存放另一个段地址 mov bx , 0 mov cx , 12 s: mov dl , [bx] mov es:[bx] , dl inc bx loop s mov ax , 4c00h int 21h code ends end masm 编译器[idata]之前要显示给出段地址所在寄存器 |
[bx]和loop指令的更多相关文章
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- [汇编学习笔记][第五章[BX]和loop指令]
第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...
- 80806汇编(5)——[BX]和Loop指令
80806汇编(5)--[BX]和Loop指令 已经好久没写点东西了,国庆节就一直想弄个个人网站,这段时间一直在弄那个,虽然有现成的框架(Hexo),但是总想弄出自己的效果来,但是最后还是有些差强人意 ...
- 王爽汇编第五章,[bx]和loop指令
目录 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 例子: 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 [bx]之前我们介绍寄存器的时候,已经很详细的说明过了,b ...
- 第五章 [BX]和loop指令
5.1 [bx] [bx]是什么 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0. 例如: mov ax, [0] 内存以字节为单位:ax以字(16bit = 2Byte)为单位:al ...
- 汇编语言-[bx]和loop指令和多个段
5.1 [BX]和内存单元的描述 要完成描述一个内存单元,需要两种信息: 内存单元的地址: 可以用 [0] 表示一个内存单元, 0 表示单元的偏移地址,段地址默认在 ds 中: 同样也可以用 [bx] ...
- 小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似 ...
- [汇编语言]-第五章[bx]和loop指令
1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0 mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在d ...
- 实验4 [BX]和loop指令
实验内容: 1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0441H. 实验结果: 若填充的数据为:0403h,则实验结果转变为: ...
随机推荐
- JS中typeof和instanceof用法区别
typeof和instanceof都可以用来判断变量 1.typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,functi ...
- 利用pip批量更新python库
如果python库比较旧,需要更新到最新版本,可以利用pip工具. DOS命令行下,输入pip -V查看pip版本,可以先把pip更新到新版本. 查看系统里过期的python库 pip list #列 ...
- 《algorithms Unlocked》读书笔记3——计数排序
<Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础,算是啃CLRS前的开胃菜和辅助教材.如果CLRS的厚 ...
- 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
- Python进阶内容(五)--- type和object的关系
面向对象编程(OOP)的两大关系 继承与实现 继承关系: 子类继承自父类(base),可以使用父类的一些方法(method)和属性(attribute) 实现关系: 以类为模板,实例化一个对象,即:对 ...
- css-翻页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 五分钟学习React(二):我的第一个Hello World
我的第一个React应用 接着我们上一期所讲的内容,通过create-react-app脚手架创建的应用,它是基于ES6的语法生成的.我们清空src目录下的文件,并分别创建index.js和index ...
- RabbitMQ入门HelloWorld(C#)(翻译)
介绍 先决条件 本教程假定RabbitMQ已安装并在标准端口(5672)上的本地主机上运行.如果您使用不同的主机,端口或凭据,连接设置将需要调整. 在哪里得到帮助 如果您在阅读本教程时遇到困难,可以 ...
- React问题集序
问题描述 antd version: 2.7.4 OS and its version: windows7 Browser and its version: Chromium 55.0.2883.87 ...
- AtCoder Grand Contest 016
在雅礼和衡水的dalao们打了一场atcoder 然而窝好菜啊…… A - Shrinking 题意:定义一次操作为将长度为n的字符串变成长度n-1的字符串,且变化后第i个字母为变化前第i 或 i+1 ...