8086汇编指令- jmpi

By: Ailson Jack
Date: 2018.11.05

个人博客: http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/85.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。

在Linux 0.00的boot.s中,为了改变CS的值,操作的方法如下所示:

entry start

start:

                   jmpi go, #BOOTSEG

go:             mov ax, cs

         那么可以通过mov指令直接修改CS的内容吗,即如下:

mov ax, #0x7c0

mov cs, ax

         答案当然是不可以的,CS和IP是8086 CPU中2个最关键的寄存器。它们指示了要读取指令的地址。大部分8086 CPU寄存器的值,都可以使用mov指令来改变,但CS、IP中的值不能用mov指令来修改。能够改变CS、IP寄存器内容的指令称为转移指令。一个最简单的可以修改它们的指令,就是上面用的 jmp 指令。

jmpi  0, 0x9000h

表示间接跳转(相当于跳到另一个段去开始执行), 即程序跳到9000:0 去继续执行了。

排版更好的内容见我博客的地址:http://www.only2fire.com/archives/85.html
注:转载请注明出处,谢谢!^_^

欧姆龙PLC(Programmable Logic Controller,可编程逻辑控制器)是一种用于自动化控制的工业级设备,其基本指令集主要包括以下几个部分: 1. **数据处理指令**: - MOV (Move):用于变量间的数据传输,比如将输入信号值存储到内存地址。 - ADD (Add) / SUB (Subtract):执行加法和减法运算。 - AND (And) / OR (Or) / XOR (Exclusive OR):逻辑运算,进行条件判断。 2. **定时器和计数器**: - SET (Set) / RESET (Reset):设置和复位定时器或计数器。 - OUT (Output):设置定时器输出脉冲,如TON/TMO等。 - COUNT (Count):计数值累加或递减。 3. **条件分支指令**: - LDI (Logical Data Instruction):常数赋值。 - LD (Load) / LDM (Load Multiple):从输入端口读取数据。 - CMP (Compare):比较两个数据,用于IF...THEN结构。 4. **循环控制**: - JP (Jump) / JMPI (Jump if Interrupted):程序跳转,用于循环、子程序调用。 - RET (Return):结束子程序或循环。 5. **中断和I/O操作**: - INT (Interrupt Request):外部设备请求中断。 - OUTI (Output with Int):带中断输出信号。 6. **I/O操作**: - DI (Digital Input) / DO (Digital Output):对数字输入/输出进行读写操作。 欧姆龙PLC指令通常以二进制或助记符形式存在,需要配合编程软件(如GOT、CX-Programmer等)编写梯形图或语句表程序。每个指令都有特定的操作码和参数,理解和熟练掌握这些指令是编程的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackailson

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值