| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1720 人关注过本帖
标题:这个该怎么下手呢?
只看楼主 加入收藏
studuan
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-7
收藏
 问题点数:0 回复次数:10 
这个该怎么下手呢?
业余学了点汇编知识..看到书上编的比较2个数的大小,,,自己想做一个比较3个数大小的程序.可是实在不知道该怎么下手了..谁能发个程序给下思路啊,.,,
搜索更多相关主题的帖子: 知识 
2008-11-11 21:47
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
假设有X ,Y ,Z 三个数
ax 返回当中的最大数
伪代码如下:
mov ax,X  ;先定X为最大值
cmp ax,Y  ;X与Y比较
jb next   ;X<Y则跳转
cmp ax,Z  ;X>Y后,再与Z比较
jb next1  ;X<Z,则跳转
ret       ;否则,X最大,返回
next:
mov ax,Y  ;把Y当作最大值
cmp ax,Z  ;Y与Z比较
jb next1  ;Y<Z则跳转
ret       ;否则,Y最大,返回
next1:
mov ax,Z  ;Z是最大值
ret       ;返回
收到的鲜花
  • zklhp2008-11-12 12:35 送鲜花  50朵   附言:我很赞同
2008-11-12 11:53
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
不知道还有没有更加简洁的办法~~
2008-11-12 11:55
workhow
Rank: 2
等 级:论坛游民
帖 子:122
专家分:21
注 册:2007-8-31
收藏
得分:0 
版主的功底可以做反向工程了吧.
2008-11-12 15:47
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
[bo][un]workhow[/un] 在 2008-11-12 15:47 的发言:[/bo]

版主的功底可以做反向工程了吧.

偶虽然顶着"版主"的高帽,其实还是个菜鸟~~
2008-11-12 22:53
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
先比2个, 结果再和第3个比.

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2008-11-13 00:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]你们都要疼我哦[/un] 在 2008-11-13 00:53 的发言:[/bo]

先比2个, 结果再和第3个比.


要是连续的话 用串操作是不是简单点?
2008-11-13 13:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
程序代码:
;MASMPlus 代码模板 - 控制台程序

.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
include gdi32.inc

includelib gdi32.lib
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm
.data
    ;lpMsg    db "Hello World!",0
    num        dd 3,2,1,12131,3424,23424,23424,234242,9999999,1221,333
.data?
    buffer    db MAX_PATH dup(?)
    
.CODE
START:
    lea esi,num
    mov ecx,10d
@loop:
    lodsd
    cmp eax,DWORD ptr [esi]
    jb @next
    xchg eax,DWORD ptr [esi]
    mov edx,[esi]
@next:
    loop @loop
    
    invoke wsprintf,offset buffer,CTXT('%d'),edx
    invoke StdOut,offset buffer
    invoke StdIn,addr buffer,sizeof buffer
    invoke ExitProcess,0
    
end START
2008-11-13 16:50
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]zklhp[/un] 在 2008-11-13 16:50 的发言:[/bo]


;MASMPlus 代码模板 - 控制台程序

.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
include gdi32.inc

include ...


关键看怎么评价算法了 要快还是要体积小

程序代码:
;MASMPlus 代码模板 - 控制台程序

.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
include gdi32.inc

includelib gdi32.lib
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm
.data
    ;lpMsg    db "Hello World!",0
    num        dd 3,2,1
.data?
    buffer    db MAX_PATH dup(?)
    
.CODE
START:
    lea esi,num
    xor ecx,ecx
    inc ecx
    inc ecx
@loop:
    lodsd
    cmp eax,DWORD ptr [esi]
    jb @next
    xchg eax,DWORD ptr [esi]
    mov edx,[esi]
@next:
    loop @loop
    
    invoke wsprintf,offset buffer,CTXT('%d'),edx
    invoke StdOut,offset buffer
    invoke StdIn,addr buffer,sizeof buffer
    invoke ExitProcess,0
    
end START
2008-11-13 16:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
00401000 > CC               INT3
00401001   8D35 00304000    LEA ESI,DWORD PTR DS:[403000]
00401007   33C9             XOR ECX,ECX
00401009   41               INC ECX
0040100A   41               INC ECX
0040100B   AD               LODS DWORD PTR DS:[ESI]
0040100C   3B06             CMP EAX,DWORD PTR DS:[ESI]
0040100E   72 04            JB SHORT CONSOLE.00401014
00401010   8706             XCHG DWORD PTR DS:[ESI],EAX
00401012   8B16             MOV EDX,DWORD PTR DS:[ESI]
00401014  ^E2 F5            LOOPD SHORT CONSOLE.0040100B

21字节



00401016   66:A1 0C304000   MOV AX,WORD PTR DS:[40300C]
0040101C   66:3B05 0E304000 CMP AX,WORD PTR DS:[40300E]
00401023   72 0A            JB SHORT CONSOLE.0040102F
00401025   66:3B05 10304000 CMP AX,WORD PTR DS:[403010]
0040102C   72 11            JB SHORT CONSOLE.0040103F
0040102E   C3               RETN
0040102F   66:A1 0E304000   MOV AX,WORD PTR DS:[40300E]
00401035   66:3B05 10304000 CMP AX,WORD PTR DS:[403010]
0040103C   72 01            JB SHORT CONSOLE.0040103F
0040103E   C3               RETN

这个是多少字节偶算不出来了 呵呵
2008-11-13 17:00
快速回复:这个该怎么下手呢?
数据加载中...
 
   



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

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