人人范文网 范文大全

程序实验举例及总结

发布时间:2020-03-02 14:27:54 来源:范文大全 收藏本文 下载本文 手机版

一、实验内容

1.在屏幕上显示一个字符的源程序:

DATAS SEGMENT STRING DB

\'HELLO!\',\'$\'

ORG

100H DATAS ENDS CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

MOV AX,DATAS

MOV DS,AX

LEA DX,STRING

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H CODES ENDS

END START

2.编写一个程序,实现字符串的复制功能,并且将复制的字符串显示出来

DATAS SEGMENT

STRING_A DB

\'ICH LIEBE DICH\',\'$\'

COUNT EQU $-OFFSET STRING_A DATAS ENDS

STACKS SEGMENT STRING_B DB COUNT DUP(?) STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV AX,STACKS

MOV ES,AX

LEA SI,STRING_A

LEA DI,STRING_B

MOV CX,COUNT

STD

REP MOVSB

LEA DX,STRING_B

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

MOV AH,4CH

INT 21H CODES ENDS END START

3、利用中断调用,在屏幕上显示1—9 之间随机数。中断号86H

DATAS SEGMENT

CLA DB 13,10,\'WE ARE GOING TO PRODUCE A NUMBER AT RANDOM:$:\'

INFON DB 0DH,0AH,\'THE PROGRAM RUNS GOOD$\'

DATAS ENDS

STACKS SEGMENT STACK

DB 200 DUP(0)

STACKS ENDS

CODES SEGMENT

ASSUME DS:DATAS,SS:STACKS,CS:CODES

START:

MOV AX,DATAS

MOV DS,AX

LEA DX,CLA

MOV AH,9

INT 21H

MOV AX,0

MOV ES,AX;

MOV BX,86H*4

CLI

MOV WORD PTR ES:[BX],OFFSET RAN

MOV WORD PTR ES:[BX+2],SEG RAN

STI

INT 86H

MOV AH,02H

INT 21H

LEA DX,INFON

MOV AH,9

INT 21H

MOV AX,4C00H

INT 21H

RAN PROC

PUSH CX

PUSH DX

MOV AH,0

INT 1AH

MOV AX,DX

XOR DX,DX

MOV BX,10

DIV BX

ADD DL,30H

MOV AH,02H

INT 21H

POP DX

POP CX

IRET

RAN ENDP CODES ENDS END START

4.复制字符串,并倒序输出

DATAS SEGMENT

STRING_A DB \'still here\',13,10,\'$\'

STRING_L DB \'$\' DATAS ENDS

STACKS SEGMENT

STRING_B DB 100 DUP(?) STACKS ENDS

CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX

MOV AX,STACKS MOV SS,AX

LEA SI,STRING_L MOV AX,SI LEA SI,STRING_A

LEA DI,STRING_B SUB AX,SI SUB AX,3

MOV CX,AX MOV BX,AX

STD

REP MOVSB

LEA DX,STRING_B

MOV AH,9

INT 21H MOV DL,13 MOV AH,2 INT 21H MOV DL,10 MOV AH,2 INT 21H

LEA SI,STRING_B MOV CX,BX ADD SI,BX DEC SI S: MOV DL,[SI] MOV AH,2

INT 21H DEC SI

LOOP S

MOV AH,004CH

INT 21H CODES ENDS END START

5、显示比较两个数的大小

DATA SEGMENT A DB

33H B DB

87H DATA ENDS STACK SEGMENT

DW

128 DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:

MOV AX,DATA MOV DS,AX MOV AL,\'A\' CMP B,AL JA BGA MOV DL,\'A\' MOV BL,\'B\' JMP DISP BGA: MOV DL,\'B\'

MOV BL,\'A\' DISP:

MOV AH,2 INT 21H MOV DL,\'>\' INT 21H MOV DL,BL INT 21H MOV AH,4CH INT 21H CODE ENDS END START

6、键盘输入10个学生的成绩,编写一个程序统计60-69分,70-79分,80-89分,90-99分及100分的人数,分别存放在Score6,Score7,Score8,Score9和Score10单元中。 输入10个学生的成绩如下:65 94 78 82 83 95 72 68 90 98 DATAS SEGMENT

INFON1 DB 13,10,\'PLEASE INPUT THOSE SCORDS(YOU NEED NOT PRESS ENTER BETWEEN THEM):$\'

INFON3 DB 13,10,\'$\'

INFON2 DB 13,10,\'THE NUMBER OF SCORD6-SCORD10 IS:\'

SCORD6 DB 30H

DB 32

SCORD7 DB 30H

DB 32

SCORD8 DB 30H

DB 32

SCORD9 DB 30H

DB 32

SCORD10 DB 30H

DB \'$\' DATAS ENDS

STACKS SEGMENT

DB 200 DUP(0) STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS START:

MOV AX,DATAS

MOV DS,AX

MOV AH,9

LEA DX,INFON1

INT 21H

MOV AH,9

LEA DX,INFON3

INT 21H

MOV CX,10

S: MOV AH,1

INT 21H

CALL CAL

INT 21H

MOV AH,2

MOV DL,

32INT 21H

LOOP S

MOV AH,9

LEA DX,INFON2

INT 21H

MOV AX,4C00H

INT 21H

CAL PROC

PUSH AX

CMP AL,36H

JZ G6

CMP AL,37H

JZ G7

CMP AL,38H

JZ G8

CMP AL,39H

JZ G9

CMP AL,31H

JZ G1 G6:

ADD [SCORD6],1

JMP WAN G7:

ADD [SCORD7],1

JMP WAN G8:

ADD [SCORD8],1

JMP WAN G9:

ADD [SCORD9],1

JMP WAN G1: ADD [SCORD10],1

MOV AH,1

INT 21H WAN: POP AX RET CAL ENDP CODES ENDS END START

二、心得体会

指令助记符决定了指令的功能,对应一条二进制编码的机器指令。指令的操作数个数由该指令确定,可以没有操作数,也可以有一个或多个操作数,大多数指令要显示写出来,还有些操作数是隐含的。当指令包含操作数的时候,书写时必须遵守:

1、指令助记符和操作数之间有分隔符,比如几个空格;

2、如果含有多个操作数,操作数之间用逗号分隔。

现在简单总结汇编语言指令的分类:

1、数据传送指令;

2、标志位操作指令;3 、算术运算指令;

4、逻辑运算指令;

5、移位运算指令;

6、位操作指令;

7、比较运算指令;

8、循环指令;

9、转移指令;

10、条件设置字节指令;

11、串操作指令;

12、BCD码运算调整指令;

13、处理器指令。

在编写汇编程序时,应该注意特别容易出现的错误,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号,等等。

汇编语言的寻址方式有直接寻址,寄存器寻址,基址变址寻址,相对基址变址寻址等等,掌握这些都是编写汇编程序很重要的环节。

汇编语言中的程序结构,子程序等知识也会帮助我们编写出一个更加完善的汇编程序。另外,我们还应该掌握DOS系统功能调用,宏汇编等知识。这里要对子程序和宏汇编加以区分,我的理解是:子程序是调用,而宏是替换

四周的学习很短,但是也很充实,有电磁场有信号有高频,但是天天抱着电脑写的是汇编,看的书也是汇编语言,其实很幸运能有机会学一些底层的东西,老师的教学很细致认真,没有老师的督促,学习的效果肯定不尽人意。

证书填写内容及举例

诗词分类及举例

典型报表项目认定及相关实质性审计程序举例

C语言实验程序、总结 实验七 指针

C语言实验程序、总结 实验六 函数

面试考核要点及举例

省略号的作用及举例

总结表彰会程序及主持词

高中化学方程式及实验总结

RFID实验总结及感想

程序实验举例及总结
《程序实验举例及总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档