汇编语言菜鸟教程 在汇编语言的串操作中,MOV DI, DS MOV ES, DI这两条指令到底有什么作用?
浏览量:1509
时间:2021-03-12 02:42:23
作者:admin
在汇编语言的串操作中,MOV DI, DS MOV ES, DI这两条指令到底有什么作用?
(1)没有上下文,你无法判断这两个指令的实际含义。你看不到任何与字符串操作的直接关系。在字符串操作中,通常将两个字符串分别放在由ds:Si和es:Di寻址的存储器单元中,以便于字符串比较、移动和其他操作。
(2)MOV,Si,DS指令的意义是将数据段寄存器的段地址值赋给Si,执行后:Si=DS
(3)MOV,Di,ES指令的意义是将扩展数据段寄存器的段地址值赋给Di。也就是说,在执行之后,di=es
一般来说,这种指令很少在程序中使用。如果要保护DS和ES的值,通常使用push-DS和push-ES指令。如果要计算物理地址,还需要将段地址放入ax寄存器。当然,8086CPU给出了这样的指令。在某些情况下,可以使用您提到的两个说明。
汇编语言SI、DI、BX、BP、SS、DS分别是什么?怎样根据这些求物理地址?
1. 什么是汇编语言Si Di BX BP SS DS?Si:16位寄存器、源索引寄存器Di:16 as寄存器、目标索引寄存器BX:16位寄存器(可分为两个8位寄存器BH和BL)、基址寄存器BP:16位寄存器、基址指针寄存器SS:16位段寄存器,用于存储当前堆栈段的段地址。它通常与sp一起使用有一个公式:物理地址=基址,偏移地址=CS*10h(基址)IP(偏移地址)CS:16位段寄存器,它存储当前代码段IP的段地址:存储下一条要执行的指令的偏移地址LZ。如果你不明白,你可以问
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。