如何添加/ sub / div / mul超过4个值?汇编语言

时间:2015-10-21 20:33:34

标签: assembly

非常新手的问题,我怎样才能用超过4个值表示算术方程?

(14×3)+ 16 / 4-3

ORG 0
MOV AL, E
MOV BL, 3
MUL AL, BL
;
MOV CL, 10
MOV DL, 4
DIV CL, DL
;
ADD AL, CL
MOV ??, 03 <--- what to put, DL is the last register
SUB AL, ?? <--- what to do 

END

1 个答案:

答案 0 :(得分:0)

首先,MUL和DIV只接受1个参数。搜索'intel mul'和'intel div'以查看指令详细信息:

8位:

使用8位寄存器<ul class="nav nav-list"> <li><label class="tree-toggler nav-header">Loreum Ipsum</label> <ul class="nav nav-list"> <li class="abc1"><label class="tree-toggler nav-header">List 1</label> <ul class="nav nav-list tree collapse in abc"> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> </ul> </li> <li class="abc1"><label class="tree-toggler nav-header ">List 2</label> <ul class="nav nav-list tree collapse abc"> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> </ul> </li> <li class="abc1"><label class="tree-toggler nav-header ">List 3</label> <ul class="nav nav-list tree collapse abc"> <li><a href="#">A</a></li> <li><a href="#">B</a></li> <li><a href="#">C</a></li> <li><a href="#">D</a></li> </ul> </li> <li class="abc1"><label class="tree-toggler nav-header ">List 4</label> <ul class="nav nav-list tree collapse abc"> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> <li><a href="#">Loreum Ipsum</a></li> </ul> </li> </ul> </li> </ul> 作为参数(其中r8是16位8位寄存器之一),

  • r8MUL r8r8相乘,并将结果存储在al中。这是因为,例如,将127乘以127大于8位(但绝不会超过16)。
  • 同样,ax会将div r8除以ax,将结果放在r8中,其余部分放在al中。

对于16位参数:

  • ah会将MUL r16(16位寄存器)与r16相乘,并将结果存储在ax中,即dx:ax中的高位字。 1}},以及dx中的低位词。

  • 同样,ax会将DIV r16除以dx:ax,将结果放在r16中,其余部分放在ax中。

您的计算

计算dx就像这样:

14×3 + 16/4 - 3

我希望你明白这个想法!