我的建议是,你先把书上的汇编例子看一些,估计你还是学生。这个代码简单。
看例子的时候,把整个汇编代码的书写结构、格式要弄清楚,然后再是一些指令的用法。
稍微说一下:
NAME SEARCH_MAX @ 这前面的 NAME这个单词你肯定认识,你汇编例子中肯定有讲解,如果没讲的话,那本书可以烧了。同样的:
DATA SEGMENT @ DATA 这个单词要干什么?
新手看代码确实很痛苦,更何况是汇编?
但是,你不要看见代码一多就害怕,任何东西都是有框架结构的。汇编的框架结构无非就是:
------------------------------------------------------
(说明)声明、定义
开始:
代码部分
结束
-------------------------------------------------------
至于代码部分的指令,就单条单条对着书看。
@文件名 比如 hello.c hello.s 等等
NAME SEARCH_MAX
@数据段
DATA SEGMENT
BUFFER DW X1,X2,…,Xn
COUNT EQU $ - BUFFER
MAX DW ?
DATA ENDS
@堆栈部分
STACK SEGMENT PARASTACK′STACK′
DB 64DUP(?)
TOP EQU $ - STACK
STACK ENDS
@表示以下是代码存放的段
CODE SEGMENT
START PROC FAR
ASSUME CS: CODE,DS: DATA,SS: STACK
BEGIN: @代码开始执行的标签 以下真正的代码部分,也就是计算机会执行的指令部分,上面那些东西是一些打酱油但又是必须的东西,计算机不会去执行。
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV CX,COUNT
LEA BX,BUFFER
MOV AX,[BX]
INC BX
DEC CX
AGAIN: CMP AX,[BX]
JGE NEXT
MOV AX,[BX]
NEXT: INC BX
LOOP AGAIN
START ENDP
CODE ENDS @代码部分结束,对应着 上面的 CODE SEGMENT
END BEGIN @对应着上面的BEGIN 标签,所谓做事有头有尾,编程结构也是一样的。
至于指令的意思,程序中什么是数据段、代码区、堆栈区,你学编程的,就自己体会了,自己复习,指令的作用社么的,看看书吧。
不负责对汇编代码中某些地方纠错--- -.-
我想没人愿意对这样的代码详细注释。
代码过于简单,即便如此,仍有多处书写错误和逻辑错误!