汇编出现这样额错误怎么改.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



...全文
680 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
你这是dos16程序 .286 .MODEL small ; ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD ; INCLUDE io.h ; include kernel32.inc ; includelib kernel32.lib ; header file for input/output
  • 打赏
  • 举报
回复
相关推荐
最新单片机仿真 独立式键盘调时的数码时钟实验 最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的
发帖
汇编语言
加入

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
申请成为版主
帖子事件
创建了帖子
2017-11-25 06:09
社区公告
暂无公告