Ⅰ 汇编简单程序
首先用notepad++编写一段汇编程序:
这里我是在32位的windows系统下写的,学汇编推荐32位win因为自带debug可以试调,64位的要自己再安装(这里不再说明),如果想试用不同操作系统的同学,建议装个虚拟机,有关镜像文件可以从mdsn里面下。
因为我们写的程序比较简单,并没有什么输出显示,所以你只会看到窗口只是闪了一下,这表明程序已经成功运行完了一次。
Ⅱ 如何编写完整的汇编程序
data segment (segment和ends是一对,一定是成对出现的)
…… (这中间就是申明你需要的数据段,例如:mess db 1,2,3;其中mess只是一个名字,可以根据自己需要来,db表示每个字符占的存储空间,也可以用dw,dd,db是一个字节;后面的数据根据实际情况来)
data ends (这是数据段)
extra segment
…… (申明和数据段一样)
extra ends (这是附加段)
code_seg segment (这是代码段)
assume cs:code_seg,ds:data,es:extra (这个一定不能少,而且顺序不能换,也就是说cs一定对应代码段,后面也是相同的)
start: (start可以没有,但冒号不能少)
mov ax,data (这四句是固定的,只能根据名称不同改变data、extra的名称,其它不能变)
mov ds,ax
mov ax,extra
mov es,ax
…… (这中间就是你说的那些代码)
code_seg ends (这两句也不能少)
end start
Ⅲ 如何用汇编编写以下程序
一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。
一个有意义的汇编程序中至少要有一个段,这个段用来存放代码。
程序结束标记
End 是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令 end,就结束对源程序的编译。
如果程序写完了,要在结尾处加上伪指令end 。否则,编译器在编译程序时,无法知道程序在何处结束。
Ⅳ 汇编语言程序该怎么写
codesegment
assumecs:code
org100h
start:jmpbegin
xdw11,12,13,14,15,16,17,18,19,20
ydw1,2,-3,-4,5,-6,-7,-8,9,10
signdw1,1,0,0,1,0,0,0,1,1
;1表示加,0表示减
zdw10p(?)
begin:pushcs
popds
pushcs
popes
movcx,10
cld
leasi,x
leadi,z
@main:
movax,[si]
cmpwordptr[si+40],0
je@main1
addax,[si+20]
mov[di],ax
jmp@main2
@main1:
subax,[si+20]
mov[di],ax
@main2:
incsi
incsi
incdi
incdi
loop@main
leasi,z
movcx,10
cld
@main3:
lodsw
calldispaxs
loop@main3
movah,4ch
int21h
;=========================================
;将要显示的有符号数置于ax中
DISPAXSPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHSI
PUSHDI
PUSHBP
PUSHDS
PUSHES
PUSHF
PUSHCS
POPDS
PUSHCS
POPES
MOVCX,6
LEADI,DISPAXSS
@DISPAXS:
MOVBYTEPTR[DI],32
INCDI
LOOP@DISPAXS
PUSHAX
MOVDL,32
MOVAH,2
INT21H
POPAX
MOVBYTEPTRNZS,0
MOVBYTEPTRSIGNS,0
CMPAX,0
JGE@DISPAXS0
MOVBYTEPTRSIGNS,1
NEGAX
@DISPAXS0:
PUSHAX
LEASI,DIVARRS
LEADI,DISPAXSS
INCDI
MOVCX,5
@DISPAXS1:
POPAX
MOVDX,0
MOVBX,[SI]
DIVBX
PUSHDX
CMPAL,0
JNE@DISPAXS2
CMPBYTEPTRNZS,1
JE@DISPAXS2
CMPCX,1
JE@DISPAXS2
MOVDL,20H
JMP@DISPAXS3
@DISPAXS2:
ADDAL,30H
MOVDL,AL
MOVBYTEPTRNZS,1
@DISPAXS3:
MOVBYTEPTR[DI],DL
INCSI
INCSI
INCDI
LOOP@DISPAXS1
POPDX
CMPBYTEPTRSIGNS,1
JNE@DISPAXS6
LEASI,DISPAXSS
ADDSI,5
@DISPAXS4:
CMPBYTEPTR[SI],32
JE@DISPAXS5
DECSI
JMP@DISPAXS4
@DISPAXS5:
MOVBYTEPTR[SI],'-'
@DISPAXS6:
LEADX,DISPAXSS
MOVAH,9
INT21H
POPF
POPES
POPDS
POPBP
POPDI
POPSI
POPDX
POPCX
POPBX
POPAX
RET
DIVARRSDW10000,1000,100,10,1
NZSDB0
SIGNSDB0
DISPAXSSDB32,32,32,32,32,32,'$'
DISPAXSENDP
;==================================
codeends
endstart
Ⅳ 汇编语言程序怎么写啊
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
AREAY DB 1,2,4,-8,16,-32,64,127
COUNT EQU $ - AREAY
MAX DB ?
MIN DB ?
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
LEA SI,AREAY
MOV AL,[SI]
MOV MAX,AL;假设最大值是AREAY数组的首元素
MOV MIN,AL;假设最小值是AREAY数组的首元素
MOV CX,COUNT;循环次数
LP:
INC SI;指向下一个内存单元
MOV AL,[SI]
CMP MAX,AL;和最大值比较
JG TOMIN;如果最大值大于AL,跳转到TOMIN
MOV MAX,AL;否则最大值就是AL
TOMIN:
CMP MIN,AL;和上面同理
JL DONE
MOV MIN,AL
DONE:
LOOP LP
MOV AX,4C00H
INT 21H
CODE ENDS
END START
PS:若有不明白的地方,可以追问
Ⅵ 怎样进入编写汇编程序
新建工程——新建文件——保存为.asm——源代码组右键“添加文件到源代码组”,然后就可以写程序了。具体指令什么的,找一本汇编语言的书看吧。
Ⅶ 汇编语言程序设计的一般步骤是什么
汇编语言程序设计的基本步骤 了解了汇编语言指令的功能和用法,了解了汇编语言程序的编写格式,就可以编制完整的汇编语言程序了。一个程序通常具有顺序、分支、循环和子程序4种结构形式。顺序程序结构就是指完全按顺序逐条执行的指令序列。在程序设计过程中,顺序结构大量存在,屡见不鲜。但一个完整的程序只是逐条去执行指令,这非常少见。常见的程序结构,是上述4种结构的混合体。一般来说,编制一个汇编语言程序的步骤如下:(1) 分析题意,确定算法或算法思想。算法是指解决问题的方法和步骤。比如现有的一些计算方法和日常生活中解决问题的逻辑思维推理方法等。(2) 根据算法画出流程图,简单的情况也可不画。画出描述算法的流程图,可以首先从图上检验算法的正确性,减少出错的可能,使得动手编写程序时的思路更加清晰。(3) 分配存储空间和工作单元,合理地使用寄存器。分配存储空间和工作单元,是指存储空间的分段和数据定义。另外,由于寄存器的数量有限,编写程序时经常会感到寄存器不够用。因此,对于字节数据,要尽量使用8位寄存器。而采用适当的寻址方式,也会达到节省寄存器的目的。(4) 根据流程图编写程序。这是编制汇编语言程序最为重要的一步。算法里规定的功能,是要通过一条条指令描述出来的。为了提高编程能力,对于初学者,一是要多阅读现有的程序,以学习别人的编程经验;而更为重要的是,必须多亲自动手编写,不要怕失败,只有通过无数次失败,才能从中积累自己的编程经验。(5) 上机调试运行程序。通过汇编的源程序,只能说明它里面不存在语法错误。但是它是否能达到算法所要求的预期效果,还必须经过上机调试,用一些实验数据来测试,才能够真正地得出结论。可以这么说,即使是一个非常有经验的程序员,也没有百分之百的把握说他编写的程序一次就成功。 用流程图表示算法 流程图用一些图形框来代表各种操作。用图形表示算法,直观形象,可以用来帮助人们对算法的理解。下图给出了一些常用的流程图符号。
上图中的判断框(菱形)用来对一个给定的条件作出判断,以决定如何执行其后的操作。它有一个入口,两个出口,如下图(a)所示。
连接点(圆圈)是用来将画在不同地方的流程线连接起来。例如在下图(b)里,有两个圈里写着数字1的圆圈,它表示是从左边的1出来,进到右边图的1里(这由流程线的方向给出)。可以看出,这两个点其实就是同一个点,只是由于画不下而分开来画的。用连接点,可以避免流程图中的流程线相互交叉或过长,从而使流程图清晰。
注释框不是流程图中必需的部分。在流程图中使用它,是为了对流程图中的某些框的操作做一些必要的说明,以便使人们能够更好地通过流程图来理解算法。
处理框反映做些什么样的操作,如把某个单元的内容送入某个寄存器,从某个存储单元取出数据等。它是流程图里最为本质的、出现最多的图形框。
输入/输出框反映程序的输入和输出情况。计算机程序无外乎接收数据,进行处理,然后加以输出,所以输入/输出框是必不可少的。
Ⅷ 怎样编写汇编程序
是单片机的汇编吗?书拿一本看一下,去仿真软件下载一个,刚开始照着书上的例子编写程序,写多了就有感觉,然后自己可以试验一下自己的思路,我就是这么过来的,自己练多了比看书看到死还有效。