汇编语言练习_2_批量传送 条件转移
文章目录
- 解析
- movsb指令(mov string byte)
- movsw指令(mov string word)
- jns指令(jmp not sf)
- 效果
- movsb指令显示"Hello"
- movsw指令显示"BOCHS"
- jns指令显示"HelloBOCHS"
- 代码
- 前期准备
- 批量传送指令 movsb
- 批量传送指令 movsw
- 条件转移 jns
- 字符填充
解析
movsb指令(mov string byte)
以ds:si为源地址,es:di为目的地址进行传送,每次传送一个字节
cx指定传送次数
DF寄存器设置数据读取以及数据填入的方向
DF=0时,每次操作后si、di递增
DF=1时,每次操作后si、di递减
cld指令将DF置0
std指令将DF置1
movsw指令(mov string word)
以ds:si为源地址,es:di为目的地址进行传送,每次传送一个字
cx指定传送次数
当标志寄存器中标志位DF设置数据读取以及数据填入的方向
DF=0时,每次操作后si、di递增
DF=1时,每次操作后si、di递减
cld指令将DF置0
std指令将DF置1
jns指令(jmp not sf)
1、
条件跳转指令
根据标志寄存器中标志位SF(也称符号位)的值判断是否跳转
SF=0时,发生跳转
SF=1时,则不跳转
2、
与跳转指令js刚好相反
3、
dec指令影响标志位SF
当dec指令计算结果的最高位,也就是符号位为0时,SF置0,符号位为1时,SF置1
效果
movsb指令显示"Hello"
movsw指令显示"BOCHS"
jns指令显示"HelloBOCHS"
代码
前期准备
start:jmp codedata:;也可使用ASCII码text0 db 'H',0x07,'e',0x07,'l',0x07,'l',0x07,'o',0x07text1 db 'B',0x07,'O',0x07,'C',0x07,'H',0x07,'S',0x07code:;es:di指向目的内存地址mov ax,0xB800mov es,axmov di,0x0;ds:si指向源内存地址mov ax,0x07c0mov ds,axmov si,text0
批量传送指令 movsb
;#####################字符串"Hello"打印,单个byte为传送单位;传送次数mov cx,text1-text0;由低地址到高地址传送cld;传送开始rep movsb
批量传送指令 movsw
;换行显示mov di,160;#####################字符串"BOCHS"打印,两个byte为传送单位;传送次数mov cx,(code-text1)/2;由低地址到高地址传送cld;传送开始rep movsw
条件转移 jns
;换行显示mov di,320;#####################条件跳转传送;ds:si指向源内存地址mov ax,0x07c0mov ds,axmov si,text0;传送次数 mov cx,code-text0dec cx
l:;al做中转站mov al,[ds:si]inc simov byte [es:di],alinc didec cxjns l
字符填充
jmp $
current:;字符填充times 510-(current-start) db 0db 0x55,0xAA ;BIOS要求:0x55,0xAA结尾
汇编语言练习_2_批量传送 条件转移相关推荐
- X86汇编语言从实模式到保护模式05:循环、批量传送和条件转移
目录 1. 跳过非指令数据区 1.1 跳转目的 1.2 续行符的作用 2. 逻辑段地址的重新设定 2.1 汇编地址与偏移地址的关系 2.2 汇编地址与偏移地址不匹配时的内存访问 2.3 重置逻辑段地址 ...
- 信捷PLC 批量传送位 MOV DMOV QMOV
信捷PLC有没有类似三菱PLC那要的批量传送多位的指令呢,有的,如下图所示. MOV DX0 D0 传送X0~X17 共16个点到D0.0~D0.15 DMOV DX0 D10 传送X0~X37 ...
- postman的批量传送数据和接口关联
一:批量传送数据 1.在本地创建一个文本文档,上面写入我们的数据. ①手机号②key值③返回值 2.在postman里面接受我们的数据,用{{变量名}} 3.因为咱们的手机号和keys值都接收了,那个 ...
- 第6章 循环、批量传送和条件转移-1.34h
c06_mbr.asm ;代码清单6-1;文件名:c06_mbr.asm;文件说明:硬盘主引导扇区代码;创建日期:2011-4-12 22:12 jmp near startmytext db 'L' ...
- PLC批量传送指令应用(实现队列移动)
传送指令可以实现2个数据的交换,这个是最简单不过的了,不清楚的可以参看我的另一篇的博文: 三菱Q系列5U系列传送类指令应用(ST语言)_RXXW_Dor的博客-CSDN博客https://blog.c ...
- sftp shell 批量上传文件_如何在shell脚本里使用sftp批量传送文件-阿里云开发者社区...
主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对 2.将其中的公钥分发到sftp欲登录的远程服务器上 3.编写并以上面的本地用户运行shell脚本 一.生成密钥对 在shell脚本中使用s ...
- linux脚本里使用sftp,如何在shell脚本里使用sftp批量传送文件
主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对 2.将其中的公钥分发到sftp欲登录的远程服务器上 3.编写并以上面的本地用户运行shell脚本 一.生成密钥对 在shell脚本中使用s ...
- 三菱PLC批量传送指令BMOV
三菱PLC学习-成批传送指令BMOV 指令格式 BMOV S DN 操作数 内容取值 S 进行传送的数据或其存储字软元件首址 D 传送数据目标的字软软件首址 N 传送的字元件的点数 ,N<=51 ...
- 计算机知识点怎么背,计算机组成原理面试知识点整理可直接背诵
第一章 概述 冯诺依曼机 特点: 1.计算机硬件系统由运算器.存储器.控制器.输入设备.输出设备5大部件组成 2.指令和数据以同等地位存储在存储器中,并可按地址寻访 3.指令和数据均用二进制代码表示 ...
最新文章
- python代码写完怎么运行-教你如何编写、保存与运行 Python 程序
- 推荐!入门人工智能必看的45篇论文(文末下载)
- centos7 安装redis_Redis6安装(上) - 单机单实例
- php 正则匹配 %3e,在shell脚本中使用正则表达式
- 10万辅导老师困境:上半年被抢,下半年被裁
- 【月报】Java知音的四月汇总
- python哈姆雷特词频统计_python—文本词频统计 哈姆雷特 txt 下载
- 关于IE、Firefox、Opera页面呈现异同(转载)
- Spring Autowiring @Qualifier example
- kotlin协程_Kotlin协程
- mysql int 11 最大多少_mysql - mysql中int(11)的列大小是多少? - 堆栈内存溢出
- Java8-为什么选择java8
- pdf格式如何压缩文件大小?
- qpython 3h_QPython 3H
- html判断是否在微信里打开,JavaScript判断浏览器内核,微信打开自动提示在浏览器打开...
- java ImageIO处理
- 计算机设置曲线超高方法,32604007曲线外轨超高设置方法及计算公式.pdf
- 家庭备忘记事便签软件哪个实用?
- android-极限测试-话机存储空间极限测试(bat脚本)
- 夏天到了,蚊子多了,下面给大家几个防蚊子的建议