汇编顺序程序设计.docx

上传人:b****6 文档编号:8705008 上传时间:2023-02-01 格式:DOCX 页数:16 大小:172.84KB
下载 相关 举报
汇编顺序程序设计.docx_第1页
第1页 / 共16页
汇编顺序程序设计.docx_第2页
第2页 / 共16页
汇编顺序程序设计.docx_第3页
第3页 / 共16页
汇编顺序程序设计.docx_第4页
第4页 / 共16页
汇编顺序程序设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

汇编顺序程序设计.docx

《汇编顺序程序设计.docx》由会员分享,可在线阅读,更多相关《汇编顺序程序设计.docx(16页珍藏版)》请在冰豆网上搜索。

汇编顺序程序设计.docx

汇编顺序程序设计

实验顺序程序设计

实验内容

1.在BUF和BUF+1、BUF+2单元分别放有一个有符号字节型数,编程序将其中最小数存入MIN单元中。

2.输入字符的判别。

要求:

从键盘输入字符,若是0~9,则直接显示。

若是A~Z或a~z,则均显示‘*’。

若是其它字符则不显示,继续等待新的字符输入。

用回车键结束程序。

3.统计学生成绩

要求:

在数据段定义10个学生成绩。

统计不及格、及格、中等,良好,优秀,满分的学生人数。

统计结果分别存于自己定义各内存单元。

一、实验目的

熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法

1.掌握条件转移、无条件转移指令的使用方法

2.掌握分支结构程序设计、编写、调试和运行的方法

 

二、实验源代码

第一个实验两种方法

(1)Datasegment

Data1db05bh

Data2db63h

Dataends

Codesegment‘code’

Assumecs:

code,ds:

data

Start:

Movax,data1

Movds,ax

Moval,data1

Movbl,data2

Movdata1,bl

Movdata2,al

Movah,4ch

Int21h

Codeends

Endstart

dsegsegment

data1db96,67,85,90,56,73,100,88,52,79

Adb0

Bdb0

Pdb0

Edb0

Fdb0

Gdb0

dsegends

csegsegment'code'

assumecs:

cseg,ds:

dseg

start:

movax,dseg

movds,ax

leasi,data1

movcx,10

gxj:

movax,[si]

cmpal,60

jbgxj1

cmpal,70

jbgxj2

cmpal,80

jbgxj3

cmpal,90

jbgxj4

cmpal,100

jbgxj5

cmpal,100

jegxj6

gxj1:

incG

incsi

loopgxj

jmpgxj7

gxj2:

incF

incsi

loopgxj

jmpgxj7

gxj3:

incE

incsi

loopgxj

jmpgxj7

gxj4:

incP

incsi

loopgxj

jmpgxj7

gxj5:

incB

incsi

loopgxj

jmpgxj7

gxj6:

incA

incsi

loopgxj

jmpgxj7

gxj7:

movah,4ch

int21h

csegends

endstart

方法二

Datasegment

Data1db05bh

Dataends

Extrasegment

Data2db63h

Extraends

Codesegment‘code’

Assumecs:

code,ds:

data,es:

extra

Start:

start:

movax,sseg

movss,ax

movsp,sizestk

movah,1

int21h

cmpal,0dh

jezwf1

cmpal,30h

jbzwf2

cmpal,39h

jbzwf3

cmpal,41h

jbzwf2

cmpal,5ah

Movax,data1

Movds,ax

Moves,ax

Moval,data1

Movbl,es:

data2

Xchgal,bl

Movdata1,al

Moves:

data2,bl

Movah,4ch

Int21h

Codeends

Endstart

实验二

Datasegment

Xdb6

Ydb?

Dataends

Codesegment‘code’

Assumecs:

code,ds:

data

Start:

Movax,data

Movds,ax

Moval,10

Mulx

Movy,al

Movah,4ch

Int21h

Codeends

Endstart

 

 

三、实验总结

对于第一个实验的第一种方法:

这个实验主要是实现两个数据的交换,在编写的时候我并没有用xchg而是采用最常用的MOV指令,只是两个数据的交换。

发现用一个中间转量是不行的,立即数与立即数是不能直接传送的,所以我采用了两个中间转换量!

进而实现了交换。

对于第一个实验第二种方法:

这个实验也是主要实现转换,只是和上个不同的是这个是数据段与附加段数据的转换,在转换过程中我用了xchg直接进行转换,可能是第一次上机编写不太熟练,很多地方出现了错误,例如标点的使用,对xchg的使用需要注意的方面不是很熟悉,例如不能同为存储器操作数,段寄存器不能作为操作数。

还有对这个程序的编写虽然知道个大概,但是细细写来还是很多地方不会。

在观察程序在内存中的变化时,有时候忘记了修改段寄存器的数据,导致整个程序都执行完了。

我还没有看到有什么变化,所以以后在执行前一定要记得修改段寄存器的地址先找到存放数据的地方才能观察到!

第二个实验:

这个实验主要实现Y=10X这个函数,在编译的时候我把10赋给了AL,把要进行计算的数赋给了X,然后再使用函数MULX,进而实现了函数的计算,在这个实验中主要遇到了一些细节问题,比如在进行输入代码的时候符号及一些很小的地方出现了问题,可能是由于刚开始接触汇编语言的语言吧,感觉它不如C语言熟练,很多和C语言不一样的地方有点不习惯甚至在编译的时候还误把C语言的格式语言写在上面,总之需要细心,尤其是编写的时候尽管很小的符号吧,也应该细心。

实验分支结构程序的设计

实验目的

熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法

1.掌握条件转移、无条件转移指令的使用方法

2.掌握分支结构程序设计、编写、调试和运行的方法

实验内容

1.在BUF和BUF+1、BUF+2单元分别放有一个有符号字节型数,编程序将其中最小数存入MIN单元中。

2.输入字符的判别。

要求:

从键盘输入字符,若是0~9,则直接显示。

若是A~Z或a~z,则均显示‘*’。

若是其它字符则不显示,继续等待新的字符输入。

用回车键结束程序。

3.统计学生成绩

要求:

在数据段定义10个学生成绩。

统计不及格、及格、中等,良好,优秀,满分的学生人数。

统计结果分别存于自己定义各内存单元。

ssegsegmentstack

stkdb20dup(0)

 

程序源代码

实验一

SSEGSEGMENTSTACK

STKDB20DUP(0)

SSEGENDS

DSEGSEGMENT

BUFDW7138H,64A6H,12EH

MINDW?

DSEGENDS

CSEGSEGMENT'CODE'

ASSUMECS:

CSEG,DS:

DSEG

ASSUMESS:

SSEG

FMIN:

MOVAX,DSEG

MOVDS,AX

MOVAX,SSEG

MOVSS,AX

MOVSP,SIZESTK

LEASI,BUF

MOVAX,[SI]

MOVBX,[SI+2]

CMPAX,BX

JLEFMIN1

MOVAX,BX

FMIN1:

CMPAX,[SI+4]

JAEFMIN2

MOVAX,[SI+4]

FMIN2:

MOVMIN,AX

MOVAH,4CH

INT21H

CSEGENDS

ENDFMIN

实验总结

通过本次实验,遇到了很多细节问题,比如加了堆栈段后相应程序执行中的语句不能少了,我遇到的第一个问题就是加堆栈段和不加堆栈段的区别。

有时候由于粗心会用错相应的语句,这个实验是对三个有符号的数进行比较所以跳转的时候要用有符号的相应语句,而我在第一次编写的时候误写成了无符号的语句。

还有就是和上几个实验一样遇到的问题,标点符号一些似很小的细节但是会导致程序不能运行,所以一定要细心!

通过本次实验,我在编写程序时遇到了许多问题,在编写第一个程序时由于没有保存,在删除内容时按键过猛,导致内容全无,又从新开始编写程序,因而下次实验一定要先保存,避免又出现相同的现象。

编程过程中由于没有仔细看题目,没有看到题目要求是“有符号字节型数”,而在开始编写时误写成了无符号的语句。

其次是对堆栈段的使用不熟练,不知道什么时候该加何时该加。

熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法

3.掌握条件转移、无条件转移指令的使用方法

4.掌握分支结构程序设计、编写、调试和运行的方法

有符号字节型数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1