函数真题的编写

数据?段

缓冲?db?-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,0;x的值

BUFFER_Y?db?($-buffer)?dup(0)?;计算存款y的价值

缓冲区_长度?dw?equ?$-?BUFFER_Y?;数据长度

数据?结束

代码?段

假设?cs:代码,ds:数据

开始:

mov?ax,数据

mov?ds,ax?

mov?si,偏移?缓冲?;指向x?才能得到值?

mov?di,抵消?BUFFER_Y?;指向y?为了保存结果?

mov?cx,缓冲区_长度

s:?

mov?al,[si];获取一个x值

测试?铝,80h测试最高位是0还是1,即正负。

jz?s0;如果等于零:表示正数和零。

mov?字节?ptr[di],-1;负数Y=-1?,十六进制表示HH。

jmp?下一个?

s0:

cmp?al,0;比较数据是否等于0

jz?s1

mov?字节?ptr[di],1;如果x是正数,y=1。

jmp?然后

s1:

mov?字节?ptr[di],0?;如果x=0,y=0。

接下来:

inc?si;指向下一个x的地址。

inc?di;指向下一个y的地址。

循环?s;遍历每个x值?

mov?啊,4ch

int?21h

代码?结束

结束?开始我只能给你一个整数解。浮点数汇编好像有点麻烦,也没必要研究,就没考虑了,看看有没有别的网友能给你浮点数的解法。.................