-----------------------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 要向内存单元写入数据

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

323

被折叠的 条评论
为什么被折叠?



