简单题微机原理与接口技术,汇编语言,用汇编程序写这个函数,高分求答案 100
2个回答
展开全部
data segment
BUFFER 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的值
BUFFER_Len dw equ $- BUFFER_Y ;数据长度
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,offset BUFFER ;指向x 以取值
mov di,offset BUFFER_Y ;指向y 以保存结果
mov cx,BUFFER_Len
s:
mov al,[si] ;取到一个x值
test al,80h ;测试最高位是0还是1,即正负
jz s0 ;如果等零:表示是正数及零
mov byte ptr[di],-1 ;负数Y=-1 ,十六进制表示是HH
jmp next
s0:
cmp al,0 ;比较数据是否等于0
jz s1
mov byte ptr[di],1 ;如果x为正数,y=1
jmp next
s1:
mov byte ptr[di],0 ;如果x=0,则y=0
next:
inc si ;指向下一个x的地址
inc di ;指向下一个y的地址
loop s ;循环处理每一个x值
mov ah,4ch
int 21h
code ends
end start
我只能给你整数的解了, 浮点数汇编好像有点麻烦,也没有研究的必要, 所以没考虑, 看有没有其它网友给您浮点数的解.................
展开全部
CODE SEGMENT
BUFF_X DB -7 ;-128~+127
BUFF_Y DB ?
ASSUME CS:CODE,DS:CODE
START:
PUSH CS
POP DS
MOV BUFF_Y,-1
MOV AL,BUFF_X
AND AL,AL
JS EXIT
JZ AD1
ADD BUFF_Y
AD1:
ADD BUFF_Y
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
BUFF_X DB -7 ;-128~+127
BUFF_Y DB ?
ASSUME CS:CODE,DS:CODE
START:
PUSH CS
POP DS
MOV BUFF_Y,-1
MOV AL,BUFF_X
AND AL,AL
JS EXIT
JZ AD1
ADD BUFF_Y
AD1:
ADD BUFF_Y
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询