标题: 问一个关于汇编的一个疑问,求解答,在线等 [打印本页]

作者: haohaoxue51    时间: 2018-5-14 22:17
标题: 问一个关于汇编的一个疑问,求解答,在线等
MOV AL,[BX]与
和MOV [BX],AL 这两个的具体区别是什么能举例说明一下吗,实在理解不了

还有MOV [bx-1] ,ah这一个

作者: angmall    时间: 2018-5-14 23:10
假设指令执行前,AL里的数据内容是 12H, DS:[BX]字节内存单元的内容是56H
MOV   AL,  [BX]
将内存数据(以BX内容为地址)传送到AL寄存器里。
指令执行后,AL的内容变得与内存[BX]的内容一样,都是56H。

假设指令执行前,AL里的数据内容是 12H, DS:[BX]字节内存单元的内容是56H
MOV   [BX],   AL
将AL寄存器里存放的内容传送到内存去,内存地址为DS:[BX]
指令执行后,那个内存单元的内容变得跟AL中的一样,都是12H。

作者: zl2168    时间: 2018-5-15 10:58
"MOV   AL,  [BX]",非标,什么地方学来的?“[BX]”,51汇编没有这种格式,除非非标的编译器。
作者: haohaoxue51    时间: 2018-5-15 13:00
angmall 发表于 2018-5-14 23:10
假设指令执行前,AL里的数据内容是 12H, DS:字节内存单元的内容是56H
MOV   AL,  
将内存数据(以BX内容 ...

好的,谢谢但是还有一个问题 MOV [BX -1]  AL又是什么意思呢?
MOV BX AL 和MOV 【BX】 AL的区别的?
作者: haohaoxue51    时间: 2018-5-15 13:00
angmall 发表于 2018-5-14 23:10
假设指令执行前,AL里的数据内容是 12H, DS:字节内存单元的内容是56H
MOV   AL,  
将内存数据(以BX内容 ...

数据内容和内存单元内容有什么不同?
作者: angmall    时间: 2018-5-16 19:10
这是x86汇编指令

这是CPU内部寄存器之间的数据传送。
MOV AL,[BX]就是把地址为寄存器DS:BX的里面的值赋给AL (间接寻址操作)。
MOV [BX],AL就是把AL的值赋给名为DS:BX(间接寻址)的地址中。
MOV [BX-1],AH就是把寄存器AH的值赋给名为(DS:BX-1)的地址中。
总结,凡是遇到[]这种你就把里面寄存器的数值当成一个内存中的地址就行了。

寄存器的数据是在CPU内, 内存单元内容是在外部RAM数据存储器, 内存是挂在CPU外面的数据总线上的


MOV AL,DH    ;AL←DH    (8位)
MOV BX,AX    ;BX←AX    (16位)

不允许传送8位到16位
MOV BX, AL

书上没有吗?为什么不看书?网上的解答不会完整系统

作者: qwerm    时间: 2018-5-16 19:22
这题我给你举例赋值说明吧。愿你能理解。
(bx)=03,     (3)地址内内容为5,(bl)=3
mov BX,2;使(BX)=2,(不影响下句的情况下)
mov [BX],BL;3号地址内容变为3,(不影响下句的情况下)
mov AL,[BX];AL的内容变为03。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1