汇编出现这样额错误怎么改.386 .MODEL FLAT ExitProcess PROTO NEAR32 stdcall, dwExitCode:

weixin_39202813 2017-11-25 06:09:49
.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

INCLUDE io.h
include kernel32.inc
includelib kernel32.lib ; header file for input/output

cr EQU 0dh ; carriage return character
Lf EQU 0ah ; line feed

.STACK 4096 ; reserve 4096-byte stack

ASSUME CS: CODE,DS:DATA
DATA SEGMENT
A DW 9876, 3456, 12345, 4567, 23456
DW 123, 789, 4321, 456, 1234
N EQU 10
KEY DW 789
DATA ENDS

CODE SEGMENT

SORTP PROC
PUSH AX ;保护现场
PUSH BX
PUSH CX
PUSH DX
PUSH SI
MOV CX,N-1 ;置内外循环次数初值
MOV BX,0 ;基址初值为0
LP1: MOV DX,CX ;外循环次数转存DX
MOV SI,0 ;变址初值为0
LP2: MOV AX,A[BX]
CMP AX,A[BX+SI+2] ;变量相邻数据比较A(i)>A(j)?
JNA L1 ;不大于转L1
MOV DI,A[BX] ;否则两数交换
MOV AX,A [BX+SI+2]
MOV A [BX],AX
MOV A [BX+SI+2],DI
L1: ADD SI,2 ;修改变址地址,指向下一个数据
LOOP LP2 ;为比较完继续
ADD BX,2 ;修改基址地址,选次小值
MOV CX,DX ;在CX中恢复外循环次数当前值
LOOP LP1
POP SI ;恢复现场
POP DX
POP CX
POP BX
POP AX
RET ;子程序返回
SORTP ENDP

FINDP PROC
PUSH AX
PUSH CX
PUSH DX
PUSH SI ;保护现场
MOV AH,0
MOV DH,AH
MOV DL,N
MOV CL,AH ;置DH,DL,CL初值
L2: INC CL
MOV AL,DH
ADD AL,DL
SHR AL,1
MOV CH,AL
SHL AL,1
MOV SI,AX
CMP A[SI],BX
JE FOUND ;找到转到FOUND
JNC GR ;若A(i)>key 转GR
CMP CH,DH ;J=DH,未找到,转NOFOUND
JE NOFOUND
MOV DH,CH ;修改上限,JDH
JMP L2
GR: MOV DL,CH ;修改下限,JDL
JMP L2
FOUND: INC CH ;若找到修正CH,只想目标数据位置
CMP CH,10 ;CH是最末一个字符?
JB L3 ;若小于转L3
MOV DL,1 ;若CH=10先显示1
OR DL,30H
MOV AH,2H
INT 21H
MOV DL,0 ;再显示0
OR DL,30H
JMP LOOK
L3: MOV DL,CH ;将CH值转换为ASCII码
OR DL,30H
JMP LOOK
NOFOUND: MOV DL,'0' ;未找到显示0
LOOK: MOV AH,2 ;显示一个字符
INT 21H
POP SI ;回复现场
POP DX
POP CX
POP AX
RET ;子程序返回
FINDP ENDP


_start: MOV AX,DATA ;装填DS数据段
MOV DS,AX
CALL SORTP ;调用排序子程序
MOV BX,KEY ;查找关键字村BX
CALL FINDP ;调用查找字程序
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END _start



...全文
733 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你这是dos16程序 .286 .MODEL small ; ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD ; INCLUDE io.h ; include kernel32.inc ; includelib kernel32.lib ; header file for input/output

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧