编程题:设数据段中有若干个有符号字节数据,请编程将其中的负数与正数分别存放于minus和plus开始的区域中

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:49:03
很急,望高手帮忙.
请详细地使用汇编语言写出程序,
再次感谢

;算法介绍:由于正负数的叛法主要是看最高位即符号位,,而由于是字节型数据,所以可以用TEST指令将操作数与10000000B来判断是正是负,,最后利用循环一次性搞完,,,,
;程序例如下:

DATA SEGMENT
NUM EQU 100
DATASTR DB NUM DUP(?)
MINUS DB 100 DUP(?)
PLUS DB 100 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,0
MOV CX,NUM
L1: MOV AL,DATASTR[SI]
TEST AL,10000000B
JZ NEXT1
MOV MINUS[SI],AL
JMP PASS1
NEXT1: MOV PLUS[SI],AL
PASS1: INC SI
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START