首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请教这个汇编程序哪出错了,运行不正确

2012-06-07 
请问这个汇编程序哪出错了,运行不正确功能是: 数组X, x0,y1;x0,y0;x0,y-1;输入YDATASEGMENTX DB 5,-

请问这个汇编程序哪出错了,运行不正确
功能是: 数组X, x>0,y=1;x=0,y=0;x<0,y=-1;输入Y

DATASEGMENT
X DB 5,-4,0,3,100,-51
COUNT EQU $-OFFSET X
Y DW ?
DATAENDS
CODE SEGMENT
ASSUME DS: DATA, CS: CODE
START:
MOV AX, DATA
MOV DS, AX
MOV CX, COUNT
MOV DI, 0FFFH

NEXT: INC DI
CMP X[DI], 0
JZ ZERO
JNS PLUS
MOV BX, 0FFFFH
JMP SAVE
ZERO:MOVBX,0
JMP SAVE
PLUS:MOV BX,1
JMP SAVE
SAVE: MOV Y, BX
MOV AH, 02H
MOV DX,Y
INT 21H
LOOP NEXT
CODE ENDS
END START



[解决办法]
应该是MOV DI,FFFFH吧
[解决办法]
把JNS改成JA试试 LOOP NEXT后加几句
mov ah,0
int 16h
mov ah,4ch
int 21h
[解决办法]
直接让DI等于0吧
[解决办法]
DATA SEGMENT
X DB 5,-4,0,3,100,-51
COUNT EQU $-OFFSET X
Y DW ?
DATA ENDS
CODE SEGMENT
ASSUME DS: DATA, CS: CODE
START:
MOV AX, DATA
MOV DS, AX
MOV CX, COUNT
MOV DI, 0

NEXT: 
CMP X[di], 0
Jg a
jl b
MOV BX, 30h
JMP SAVE
a: MOV BX,31h
JMP SAVE
b: MOV BX,2d31h
JMP SAVE
SAVE: MOV dl,bh
MOV AH, 02H

INT 21H
mov dl,bl
mov ah,2
int 21h
mov dl,' '
mov ah,2
int 21h
inc di
LOOP NEXT 

mov ax,4c00h
int 21h
CODE ENDS
END START
这个应该可以吧

热点排行