Excel表格网

在汇编语言的串操作中,MOV DI, DS MOV ES, DI这两条指令到底有什么作用?

88 2024-03-03 16:45 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给出了这样的指令,在某些情况下,可能会用到你提到的这两条指令。

二、欧姆龙PLC MOV指令。请问一下当用MOV指令向通道传送一个常数数据,16进制和10进制的数前面都加什么符号?

&+数字 十进制#+数字 十六进制十进制和十六进制可以切换监控,数字对就行。

三、在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许?

CS不可以直接赋值,这个段寄存器的值要由系统设置。

其他的DS、ES、SS都可以用MOV赋值,但不能用立即数。

四、简单的汇编程序题,执行完lea指令后bx值是多少呢,最终结果是多少呢?

lea之后bx为1000h,cx不定(就是未初始化的状态,可能是程序的大小),执行完后bx为3000h,cx为0

五、汇编利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址储存在dx中?

assumencs:codecodesegmentstart:movax,2000hmovds,axmovbx,0S:movcl,[bx]movch,0错误,改为下一行:CMPCL,0?????填写:JZOKincbxloopsok:decbxmovdx,bxmovax,4c00hint21hcodeendsendstart

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片
上一篇:返回栏目