ddng.net
当前位置:首页 >> 汇编语言哪些指令要求两个操作数的位数必须相同 >>

汇编语言哪些指令要求两个操作数的位数必须相同

因为数据要从内存中读入cpu的寄存器中,cpu才能进行操作,所以两个操作数至少要有一个是寄存器

必须一致.8位+16位,可以先把8位扩展成16位,然后相加或者可以8位+16位的低8位,其后高8位adc xx, 0,带进位加1个0.乘法也一样,(a+100A + b) x c = 100A*c + b*c,分开相乘,结果相加即可.

就是大小要一样

两个相乘的数,要么都是8位,要么都是16位.为什么呢? 解释如下: 按照规定,如果是8位相乘,一个默认存储在AH中,另一个存储在8位寄存器或者内存字节单元中,计算结果默认放在AX中; 如果是16位相乘,一个默认存储在AX中,另一

汇编语言中,如果是双操作数指令,逗号前面的为目标操作数(可能是你的书上所谓的第二操作数),逗号后面的为源操作数.例如:MOV指令中,MOV AX,BX;AX为目标操作数,BX为源操作数,此指令的功能,将BX(源)的值送到AX(目标).在汇编中,立即数不能做为目标操作数的.可以作为源操作数 例如:MOV AX,1234H;这是正确的 MOV 1234H,AX;这是错误的,无法将AX(源)的值送给一个数据

是的,两个操作数不能同时为段寄存器.段寄存器是存放基地址的,且CS寄存器不能用作,只能同时有且只有一个.立即数可以间接的传给段寄存器,如例用AX,BX等,

(1)10011010(2)01100001(3)11111011(4)00011100(5)00000000(6)11100011(7)11011100(8)11110111(9)01110010(10)01110010(11)00110111

我的解答源于对博主水煮鱼丸博客的理解/翻译(网页链接) 解答如下:这个问题的解释涉及到对于RAM硬件的理解.RAM只能由两种工作模式,读或者写.当你想把RAM中存的一个byte复制到另一个位置的时候,你必须有一个除了RAM以外的临时存储器来存放数据这样你才可以使RAM实现由读到写的切换.对于程序猿来说要实现从存储器到存储器的指令是完全可以的,但是程序猿必须使用更为高级的语言,而这些高级语言在翻译成为汇编语言之后就是先从存储器取数据到寄存器,再将数据移动到存储器.或者,可以扩展RAM控制器,使其拥有这样一个临时寄存器,“做而论道”的答案讲的较为先进的存储器应该就是这种情况.

因为数据要从内存中读入CPU的寄存器中,CPU才能进行操作,所以两个操作数至少要有一个是寄存器

网站首页 | 网站地图
All rights reserved Powered by www.ddng.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com