| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:为什么此程序无法在masm for windows集成环境中运行?求解答?急急急!(一 ...
只看楼主 加入收藏
wj13370336
Rank: 2
等 级:论坛游民
帖 子:16
专家分:12
注 册:2012-11-12
结帖率:50%
收藏
 问题点数:0 回复次数:2 
为什么此程序无法在masm for windows集成环境中运行?求解答?急急急!(一运行就无法响应!)
试写出一个完整的数据段DATA_SEG,它把整数5赋予一个字节,并把整数-1,0,2,5和4放在10字数组DATA_LIST的头5个单元中。然后,写出完整的代码段,其功能为:把DATA_LIST中头5个数中的最大值和最小值分别存入MAX和MIN单元中。

答:DATA_SEG SEGMENT

NUM DB 5

DATA_LIST DW -1, 0, 2, 5, 4, 5 DUP (?)

MAX DW ?

MIN DW ?

DATA_SEG ENDS

;----------------------------------------------------------------

CODE_SEG SEGMENT

MAIN PROC FAR

ASSUME CS: CODE_SEG, DS: DATA_SEG

START: PUSH DS ;设置返回DOS

SUB AX, AX

PUSH AX

MOV AX, DATA_SEG ;给DS赋值

MOV DS, AX



MOV CX, 4 ;程序段开始

LEA BX, DATA_LIST

MOV AX, [BX]

MOV MAX, AX

MOV MIN, AX

ROUT1: ADD BX, 2

MOV AX, [BX]

CMP AX, MAX

JNGE ROUT2

MOV MAX, AX

ROUT2: CMP AX, MIN

JNLE ROUT3

MOV MIN, AX

ROUT3: LOOP ROUT1 ;程序段结束

RET

MAIN ENDP

CODE_SEG ENDS

;----------------------------------------------------------------

END START

搜索更多相关主题的帖子: windows 最大值 
2012-11-28 16:30
woxingx
Rank: 2
等 级:论坛游民
帖 子:46
专家分:68
注 册:2012-11-8
收藏
得分:0 
这里错了应该是 LEA AX,[BX]  //就是把BX的偏移地址AX利用LEA这个指令,或者MOV AX,OFFSET BX  这条语句也可以  希望可以帮到你

2012-12-01 13:09
woxingx
Rank: 2
等 级:论坛游民
帖 子:46
专家分:68
注 册:2012-11-8
收藏
得分:0 
ROUT1: ADD BX, 2
MOV AX, [BX]
CMP AX, MAX
JNGE ROUT2   ;这里改一下  如果ax比 max大那么就把ax给max  
修改语句为:  jnce  A1
A1: mov max,ax
下面的小于比较也是类似
2012-12-01 13:23
快速回复:为什么此程序无法在masm for windows集成环境中运行?求解答?急急急! ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014176 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved