3.4 mov、add、sub指令

本文详细介绍了汇编语言中的MOV指令,并通过实验验证了其不同形式的正确性,包括从寄存器到段寄存器、内存单元的传送。接着,文章列举并解析了ADD和SUB指令的不同用法,展示了如何进行二进制运算。

-----------------------MOV

MOV目前有以下几种:

mov 寄存器,数据 mov ax,8

mov 寄存器,寄存器 mov ax,bx

mov 寄存器,内存单元 mov ax,[0]

mov 内存单元,寄存器 mov [0],ax

mov 段寄存器,寄存器 mov ds,ax

 

猜想1:

既然有“mov 段寄存器,寄存器”,从寄存器向段寄存器传送数据,

那么也应该有“mov 寄存器,段寄存器”,从段寄存器向寄存器传送数据。

我们可以验证一下:

进入Debug 用-A命令在一个预设的地址1000:0处,用汇编的形式mov ax,ds写入指令,修改CS:IP指向1000:0 然后-T命令执行

用-R查看DS段寄存器中的数据被传送到了AX寄存器,猜想成立!“mov 寄存器,段寄存器”指令正确

 

猜想2:

既然有“mov 内存地址,寄存器”从寄存器向内存单元传送数据,

那么也应该有“mov 内存单元,段寄存器”从段寄存器向内存单元传送数据

验证:

我们将段寄存器cs中的内容送入内存10000H处

使用A命令在预设地址0B39:0000处用汇编形式写入3条命令

-a
0B39:0000 mov ax,1000
0B39:0003 mov ds,ax
0B39:0005 mov [0],cs
然后用R命令查看CS段寄存器中的数据是0B39

使CS:IP指向0B39:0 然后T命令执行指令

因为DS为1000,mov [0],cs 要向内存单元写入数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值