函数真题的编写
数据?段
缓冲?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
代码?结束
结束?开始我只能给你一个整数解。浮点数汇编好像有点麻烦,也没必要研究,就没考虑了,看看有没有别的网友能给你浮点数的解法。.................