初学汇编 一小段代码 遇到点问题 谢谢大家

songkai2008 2009-05-14 07:35:49
实现从三个数中找最大的和最小的 我用比较笨的方法写的代码 就是先找出最大的 然后再写一遍 找最小的 生成.exe没问题 但是调试时写G=0,00XX时就有问题了 什么结果也没有 也没法再从键盘输入了 只能直接叉掉重进,,,,不知道是什么原因,,,,
SSEG SEGMENT STACK
STK DB 20 DUP(0)
SSEG ENDS
DSEG SEGMENT
DATA DB 12H,23H,34H
MAX DB 0
MIN DB 0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ASSUME SS:SSEG
FMAX: MOV AX,DSEG
MOV DS,AX
MOV AX,SSEG
MOV SS,AX
MOV SP,SIZE STK
LEA SI,DATA
MOV AL,[SI]
MOV BL,[SI+1]
CMP AL,BL
JAE FMAX1
MOV AL,BL
FMAX1: MOV DL,[SI+2]
CMP AL,DL
JAE FMAX2
MOV AL,DL
FMAX2: MOV MAX,AL
FMIN: LEA SI,DATA
MOV AL,[SI]
MOV BL,[SI+1]
CMP AL,BL
JLE FMIN1
MOV AL,BL
FMIN1: MOV DL,[SI+2]
CMP AL,DL
JLE FMAX2
MOV AL,DL
FMIN2: MOV MIN,AL
MOV AH,4CH
INT 21H
CSEG ENDS
END
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodider 2009-05-14
  • 打赏
  • 举报
回复
看看2楼的例子。
nanlingcg 2009-05-14
  • 打赏
  • 举报
回复
看看。。。。。。。
BAYNPU 2009-05-14
  • 打赏
  • 举报
回复
这个源程序让楼主参考下:
.model small
.data
array dw -45h,54h,-86h,-70h,50h,-90h,23h,-61h,59h,78h
count equ ($-array)/2
mess db 'select the option(1:maximum 2:minimum):$'
err db 'error!$'
mess1 db 'the maximum is:$'
mess2 db 'the minimum is:$'
mess3 db 'the average value is:$'
newline db 13,10,'$'
average dw ?
crlf macro
lea dx,newline
mov ah,09h
int 21h
endm
messg macro addrs
lea dx,addrs
mov ah,09h
int 21h
endm
.code
mov ax,@data
mov ds,ax
lea bx,array
mov cx,count
inflag:messg mess
mov ah,1
int 21h
mov dl,al
cmp dl,'1'
je maxv
cmp dl,'2'
je minv
cmp dl,'3'
je avg
cmp dl,'q'
je exit
crlf
messg err
crlf
jmp inflag
maxv:call choose
push ax
messg mess1
pop ax
call btod
crlf
jmp inflag
minv:call choose
push ax
messg mess2
pop ax
call btod
crlf
jmp inflag
avg:messg mess3
lea bx,array
mov cx,count
call _average
mov ax,average
call btod
crlf
jmp inflag
exit:mov ax,4c00h
int 21h
choose proc near
push ax
push si
dec cx
mov si,2
mov ax,[bx]
loop1:cmp dl,'2'
jne flag1
cmp ax,[bx+si]
jle next
jmp flag2
flag1:cmp ax,[bx+si]
jge next
flag2:mov ax,[bx+si]
next: inc si
inc si
loop loop1
pop si
pop ax
ret
choose endp
_average proc near
push dx
push cx
lodsw
mov ax,0
next1:add ax,[bx]
inc bx
inc bx
loop next1
pop cx
mov dx,0
idiv cx
mov average,ax
pop dx
ret
_average endp
btod proc near
push si
push dx
push cx
push bx
push ax
cmp ax,0
jge next2
neg ax
push ax
mov dl,'.'
mov ah,02h
int 21h
pop ax
next2:mov dx,0
mov si,10
mov cx,0
next3:div si
add dl,30h
push dx
inc cx
mov dx,0
cmp ax,0
jnz next3
mov ah,2
disp:pop dx
int 21h
loop disp
mov dl,'.'
mov ah,02h
int 21h
pop ax
pop bx
pop cx
pop dx
pop si
ret
btod endp
end
fpcc 2009-05-14
  • 打赏
  • 举报
回复
可能是逻辑关系弄错了。
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰写; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

21,500

社区成员

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

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