导航:首页 > 解决方法 > 汇编怎么做简单方法

汇编怎么做简单方法

发布时间:2023-01-10 06:55:22

1. 两个 简单的汇编 编程

也不给点分数,下回记得啊!!呵呵!!
第一个思想很简单嘛(不就是循环比较吗?),流程图我画的显示不出来.很简单的你自己想一下吧.
data segment
arry dw 10,?,11,-45,56,96,-96,32,-98,1,-23,-63
data ends
code segment
assume ds:data,cs:code
start :
mov ax ,data
mov ds ,ax
lea si,arry
mov word ptr [si+2],0
mov cx,word ptr [si]
add si,2
loop1:
add si,2
cmp word ptr [si],0
jnl loop2
inc [arry+2]
loop2:
loop loop1
mov ax,4c00h;
int 21h
code ends
end start

第二个:
data segment
names db 0dh,0ah,'123456','$';将它改为你要的人名
num db 0dh,0ah,'456789','$';将它改为学号
string1 db 0dh,0ah,'please input again:','$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
loop1:
mov ah,1
int 21h
cmp al,'1'
jz output1
cmp al,'2'
jz output2
mov ah,09h
mov dx,offset string1
int 21h
jmp loop1
output1:
mov ah,09h
mov dx,offset names
int 21h
jmp out1
output2:
mov ah,09h
mov dx,offset num
int 21h
out1:
mov ax,4c00h
int 21h
code ends
end start

2. 汇编语言程序设计的一般步骤是什么

汇编语言程序设计的基本步骤 了解了汇编语言指令的功能和用法,了解了汇编语言程序的编写格式,就可以编制完整的汇编语言程序了。一个程序通常具有顺序、分支、循环和子程序4种结构形式。顺序程序结构就是指完全按顺序逐条执行的指令序列。在程序设计过程中,顺序结构大量存在,屡见不鲜。但一个完整的程序只是逐条去执行指令,这非常少见。常见的程序结构,是上述4种结构的混合体。一般来说,编制一个汇编语言程序的步骤如下:(1) 分析题意,确定算法或算法思想。算法是指解决问题的方法和步骤。比如现有的一些计算方法和日常生活中解决问题的逻辑思维推理方法等。(2) 根据算法画出流程图,简单的情况也可不画。画出描述算法的流程图,可以首先从图上检验算法的正确性,减少出错的可能,使得动手编写程序时的思路更加清晰。(3) 分配存储空间和工作单元,合理地使用寄存器。分配存储空间和工作单元,是指存储空间的分段和数据定义。另外,由于寄存器的数量有限,编写程序时经常会感到寄存器不够用。因此,对于字节数据,要尽量使用8位寄存器。而采用适当的寻址方式,也会达到节省寄存器的目的。(4) 根据流程图编写程序。这是编制汇编语言程序最为重要的一步。算法里规定的功能,是要通过一条条指令描述出来的。为了提高编程能力,对于初学者,一是要多阅读现有的程序,以学习别人的编程经验;而更为重要的是,必须多亲自动手编写,不要怕失败,只有通过无数次失败,才能从中积累自己的编程经验。(5) 上机调试运行程序。通过汇编的源程序,只能说明它里面不存在语法错误。但是它是否能达到算法所要求的预期效果,还必须经过上机调试,用一些实验数据来测试,才能够真正地得出结论。可以这么说,即使是一个非常有经验的程序员,也没有百分之百的把握说他编写的程序一次就成功。 用流程图表示算法 流程图用一些图形框来代表各种操作。用图形表示算法,直观形象,可以用来帮助人们对算法的理解。下图给出了一些常用的流程图符号。

上图中的判断框(菱形)用来对一个给定的条件作出判断,以决定如何执行其后的操作。它有一个入口,两个出口,如下图(a)所示。

连接点(圆圈)是用来将画在不同地方的流程线连接起来。例如在下图(b)里,有两个圈里写着数字1的圆圈,它表示是从左边的1出来,进到右边图的1里(这由流程线的方向给出)。可以看出,这两个点其实就是同一个点,只是由于画不下而分开来画的。用连接点,可以避免流程图中的流程线相互交叉或过长,从而使流程图清晰。

注释框不是流程图中必需的部分。在流程图中使用它,是为了对流程图中的某些框的操作做一些必要的说明,以便使人们能够更好地通过流程图来理解算法。

处理框反映做些什么样的操作,如把某个单元的内容送入某个寄存器,从某个存储单元取出数据等。它是流程图里最为本质的、出现最多的图形框。

输入/输出框反映程序的输入和输出情况。计算机程序无外乎接收数据,进行处理,然后加以输出,所以输入/输出框是必不可少的。

3. 汇编语言程序设计步骤 有那几步

汇编语言程序设计步骤:1、 分析问题,抽象出描述问题的数据模型 2、 确定问题的算法思想 3、 画出流程图或结构图 4、 分配存储器和工作单元(寄存器) 5、 逐条编写程序 6、 静态检查,上机调试 例:编程查找考生的最高分,假设所有考生分数已存入计算机内存.1、 分析问题 根据条件、特点、规律 →数学模型 本例分数已给定为0~200之间的整数集合(考虑加试分) ,记为{S},找max{S}(注:简单问题不一定写数学模型) .2、 确定算法思想 最好利用现成算法和程序设计方法,若无,则需根据实践经验总结算法思想.如本例,从成绩单第一分数往下看,边看边比较,记住较高分,舍弃较低分,直至看完,最高分存于 脑中.归纳算法思想:建立数据指针并指向数据区首地址.将第一数取入寄存器(如AL) ,与下一数比较,若下一数大则将其取入寄存器,否则调整指针,再与下一数比较,重复上述 直至比较完毕,寄存器中即最高分.读分数用MOV指令,比较用CMP指令,分析判断用条件转移指令.3、 画流程图或结构图 有逻辑流程、算法流程、程序流程等,复杂问题需画模块结构.本例简单,只画出程序 流程图(用模块化结构的N-S流程图表示) :本例的N-S流程图 图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至 零查找结束;建立一个指针指向数据区.开始 初始化 取第一数到寄存器 与下一数比较 下一数大?是 否 取大数到寄存器 修改指针,计数次数减一 返回到循环体开始,直到计数次数为0退出循环 结束 4、 分配存储器空间和工作单元(寄存器) 定义数据段、堆栈段、代码段等.工作单元一般用寄存器.本例:分数放数据段,建100 字节堆栈空间,BX作数据指针,CX作计数器,AL放最高分.5、 逐条编写程序 DATA SEGMENT FEN DB 85,90,60,75,87,35,80,78,96,82…… ;存分数 MAX DB ;存最高分 DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) ;100字节堆栈 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX,0 PUSH AX ;为了返回DOS MOV AX,DATA MOV DS,AX ;置数据段寄存器 MOV BX,OFFSET FEN ;置数据指针 MOV CX,MAX-FEN ;置计数器初值 DEC CX ;N个分数比较N-1次 MOV AL,[BX] ;取第一个分数 LOP:INC BX ;调整指针 CMP AL,[BX] ;与下一数比较 JAE NEXT ;大于等于则转 MOV AL,[BX] ;否则取下一数 NEXT:LOOP LOP ;计数器减一,;不为零转LOP MOV MAX,AL ;存放最高分 RET ;返回DOS START ENDP CODE ENDS END START 6、 静态检查,上机调试 选用指令尽量字节少,使其执行速度快.易错处应重点查,如比较次数、转移条件等.确信无错后方可上机调试.

4. 简单汇编语言实例

(1)判断双字的高位字是不是1,如果不是,直接返回
(2)清除进位标志
(3)将低字求反,然后 +1
(4)将进位保存起来
(5)将高位字求反,加上刚才的进位
--------------
XXXX:
MOV AX, X + 1 ;取 X 的高位字
CMP AX, 32768
JB X_EXIT ;是正数就跳转

MOV AX, X ;取 X 的低位字
XOR AX, 0FFFFH ;取反
ADD AX, 1
PUSHF
MOV X, AX

MOV AX, X + 1 ;取X 的高位字
XOR AX, 0FFFFH ;取反
POPF
ADC AX, 0
MOV X + 1, AX

X_EXIT:
RET

5. 如何编写最简单的汇编语言

首先明白编译环境:以上4个exe程序必须在32机中运行,若是64位机,请参照dosbox0.74(如何在64位机中使用debug)使用方法

了解计算机CPU原理:详情请参照“80X86计算机组织”和“80X86的指令系统和寻址方式”

首先有一道题:

求表达式Y=A*X+B-C的值,已知A、B、C分别存放在DA-1、DA-2、DA-3字节单元,它们的值分别是:5 、 6、 7,X存放在INPUT字节单元,结果Y放入JSJ_10字节单元。

分析顺序结构程序代码:由记事本敲出来的

data segment da_1 db 5 da_2 db 6 da_3 db 7 input db 1 jsj_10 db 0data ends ;这一段在内存中定义了一个段,叫做data,并且其中存入了5个变量并且付入初值,db代表每个变量占用1个字节,若是dd则为字,为2个字节code segment ;名字叫做code的段的定义,显然这儿作为代码段,当然code这个名字可以更改 assume cs:code,ds:data ;指定data为DS数据段,code为CS代码段start: mov ax,data ;加法指令 mov ds,ax ;加法指令 mov al,da_1 ;加法指令

mov bl,input ;加法指令

mul bl ;乘法 add al,da_2 sub al,da_3 ;减法 mov jsj_10,al

exit: mov ah,4ch int 21h ;这两行相当于ret(返回值),就像C语言中的return 0;

code ends end start

注释: XXXX segment

.............

XXXX ends ;定义一个段

assume ds:XXXX 把XXXX段指定为ds(ds是段地址寄存器)

请先提前把masm edit debug link文件放入预定的文件夹,并把编写的xxxx.asm代码文件放入该文件夹,asm文件可用记事本写成,并改格式txt为asm(有的看不到文件后缀.txt的请参照网络)

6. 汇编语言程序的开发有哪4个步骤

汇编语言程序设计的基本步骤:
1.
分析问题
先全面分析题目,看它给出了什么条件,有什么特点,找出规律,归纳出数学模型,也可能有些问题不用写出数学模型或写不出数学模型。
2.确定算法
有了数学模型,或虽然没有数学模型但已把题目分析清楚了,就选择一个合适的算法和适当的数据结构。如果没有可供选用的现成的算法和结构,就需要针对具体问题设计一个算法或结构。
3.绘制流程图
流程图就是用图形的方式把解决问题的算法直观地描述出来。对于一个比较复杂的问题,画出流程图,这有助于对问题的理解以及有助于编写出正确的程序。当然,如果算法比较简单,也可不画流程图。
4.分配存储空间和工作单元
用汇编语言编写程序时,需要给程序中的变量指定内存单元地址或指定寄存器。
5.编写程序
要把题目中需要处理的数据合理地根据2、3、4步的工作,选用适合的指令,并按一定的语法规则编写相应的程序。
6.静态检查
静态检查就是用人工的方式检查程序是否有错误,包括算法错误和语法错误等,如果有错误,及时改正过来。
7.上机调试运行
任何程序必须经过调试,才能检查出解题目的是否正确以及程序是否符合设计思想。

阅读全文

与汇编怎么做简单方法相关的资料

热点内容
拆盲袋的方法和步骤顺序 浏览:508
小孩的数学教学方法 浏览:368
怎么备份系统的方法 浏览:580
三钩的使用方法图 浏览:833
塞纳小桌板安装方法 浏览:955
柠檬草茶的功效与作用及食用方法 浏览:331
个税计算方法地区 浏览:144
吉列剃须刀使用方法 浏览:875
如何解释命运的方法 浏览:918
肩肌训练方法 浏览:396
2052除以57的简单方法 浏览:74
胸软筋挫伤治疗方法 浏览:392
烤猪肉的简单腌制方法 浏览:341
大腿外侧冷的原因和解决方法 浏览:51
ddc桩工程计算方法 浏览:689
指针万用表使用方法图解 浏览:372
差热分析最佳方法 浏览:631
收被子方法视频 浏览:123
记忆宫殿方法如何训练的坏处 浏览:58
材料进场验收的基本方法有哪些 浏览:382