吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1004|回复: 4
收起左侧

[已解决] 汇编语言loop和[bx]的联合应用问题【已解决】

[复制链接]
MEGAImagine 发表于 2021-7-22 17:05
本帖最后由 MEGAImagine 于 2021-7-23 20:10 编辑

在学习汇编语言时,看到王爽老师汇编语言的loop与[bx]的联合运用的时候有一点想不通,王爽老师先是说不能将ffff:0~ffff:b的数据累加到dl中,并设置(dh)=0实现累加到dx中,害怕会遇到进位丢失,但是后面的联合运用中却是[url=]image.png[/url] ,这样的话不也是将[bx]加入dl中吗,如果遇到进位不会被后面的
mov ah,0给覆盖掉吗这不就和之前说的不能的情况一样吗,还是说mov ah,0就是不对ah做操作的意思,但是为什么要写这一个代码出来呢?求各位大佬能给我解惑
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

internetidis 发表于 2021-7-22 20:11
相加的时候使用了 16位的寄存器,并把相加的结果放进了 dx中,mov ah,0 不会影响到 dx中的结果
 楼主| MEGAImagine 发表于 2021-7-23 12:39
internetidis 发表于 2021-7-22 20:11
相加的时候使用了 16位的寄存器,并把相加的结果放进了 dx中,mov ah,0 不会影响到 dx中的结果

但是万一它的低位加上去超过了一个字节进位到高位的话mov ah,0会把他高位给覆盖成0吗如果不会的话,为什么要加着一句呢?是为了提醒cpu要使用高位可能进位吗?
internetidis 发表于 2021-7-23 14:31
本帖最后由 internetidis 于 2021-7-23 14:38 编辑

add dx,ax 相加的结果存进了 dx中,你的mov ah,0怎么就影响到低位了呢?要明白 ax 在这里充当一个中转的角色,mov al,[bx]是为了 读取内存中一个字节到  al寄存器中,因为是一个字节,不可能 add dx,al 中吧,只能 先mov ah,0[保证数据的准确性,避免影响后面的add指令]     然后再 add dx, ax 。最终的结果就保存在dx中。ax只是起了中转的作用。add dx,ax 怎么加都没事,因为是只有12个字节,结果都不会超过65535
 楼主| MEGAImagine 发表于 2021-7-23 20:09
internetidis 发表于 2021-7-23 14:31
add dx,ax 相加的结果存进了 dx中,你的mov ah,0怎么就影响到低位了呢?要明白 ax 在这里充当一个中转的角 ...

噢噢,谢谢!我明白了!他是每一个单独给ax然后加到dx,我理解错代码意思了,我以为是先加到ax加完,才让ax加在dx上,十分感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表