汇编语言实验讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实验讲义

计算机学院

2002,5

实验一数据的输入输出

1.实验目的:

(1)熟悉汇编语言的编辑、汇编、连接、运行的全过程。

(2)了解汇编语言的程序结构、学习调用过程实现输入输出及用INCLUDE命令包含文件的方法。

2.实验步骤:

(1)用编辑软件EDIT编辑一个扩展文件名为ASM的汇编语言源程序。

(2)用汇编程序MASM或TASM汇编上述的汇编语言源程序,形成目标代码文件。(扩展名为OBJ)

(3)用连接程序LINK或TLINK连接目标代码文件,形成可执行文件。(扩展名为EXE)(4)运行可执行文件。观察执行结果,以验证其正确性。

3.从键盘上输入两个十进制数正数(<32767),相加并显示结果。

参考程序:

STACK SEGMENT STACK ‘STACK’

DB 100 DUP(?)

TOP DW ?

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK

START: MOV AX,STACK

MOV SS,AX

MOV SP,0FFSET TOP

CALL D_BP ;从键盘接受一个十进制数

MOV AX,BX

CALL D_BP ;从键盘接受一个十进制数

ADD AX,BX

CALL B_DP ;显示结果

MOV AH,4CH ;返回DOS

INT 21H

INCLUDE BIN_DEC.ASM

INCLUDE DEC_BIN.ASM

CODE ENDS

END START

4. 改写程序为输入两个十进制数,相减并显示输出。

5.改写程序为输入两个十进制数,相乘并显示输出。

6.改写程序为输入两个十进制数,相除并显示输出。

(注:D_BP:十进制—>二进制转换过程,出口参数BX=二进制数;B_DP:二进制—>十进制转换过程,入口参数AX=二进制数)

实验二BCD—>ASCII

1.实验目的:

(1)进一步熟悉汇编语言的汇编、连接、运行的全过程。

(2)了解汇编语言的程序结构、掌握BCD—>ASCII及字符输出的方法。

2.实验步骤:(同前)

3.实验参考程序:

NAME BCD TO ASCII

DATA SEGMENT

BCDBUF DB 12H,34H,56H,78H,90H,98H,76H,54H,32H,10H

COUNT EQU $-BCDBUF

ASCBUF DB 20 DUP(?)

DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’

SPACE DB 100 DUP(?)

TOP DW ?

STACK ENDS

COSEG SEGMENT

ASSUME CS:COSEG,DS:DATA,ES:DATA,SS:STACK

MAIN PROC FAR

START: PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOP

MOV SI,OFFSET BCDBUF

MOV DI,OFFSET ASCBUF

MOV CX,COUNT

CLD

TRANT: LODSB

MOV BL,AL

PUSH CX

MOV CL,4

SHR AL,CL

OR AL,30H

STOSB

MOV AH,2

MOV DL,AL

INT 21H

MOV AL,BL

AND AL,0FH

ADD AL,30H

STOSB

MOV AH,2

MOV DL,AL

INT 21H

POP CX

LOOP TRANT

RET

MAIN ENDP

COSEG ENDS

END START

4.修改程序,在输出的每个数据后加一个逗号,重新调试运行之。

实验三数据处理

1.实验目的:

练习用汇编语言实现对数据块的求和、求最大值(或最小值)、排序等程序设计方法。2.求给定的十个未压缩的BCD码数之和并将结果显示在屏幕上。

参考程序:

NAME SUM TO DECIMAL

DATA SEGMENT

BCDBUF DB 0,1,2,3,4,5,6,7,8,9

SUM DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

DISP MACRO

OR DL,30H

MOV AH,2

INT 21H

ENDM

START: MOV AX,DATA

MOV DS,AX

MOV SI,0

MOV CX,10

XOR AX,AX

CIR0: ADD AL,BCDBUF[SI]

AAA

INC SI

LOOP CIR0

MOV SUM,AX

MOV DL,AH ;先输出高位

DISP

MOV DL,AL ;再输出低位

DISP

MOV AH,4CH

INT 21H

CODE ENDS

END START

3.将BCDBUF数据区的BCD码数改成带符号字数据,编制这些数比较大小的程序,并调用输出子程序显示结果。

4.将上题中BCDBUF数据区的带符号数按从小到大顺序排序,并将排序后的数据输出。

实验四字符串处理

1.实验目的:

练习用汇编语言实现对字符串拷贝、比较、大小写转换、求长度、查找、插入、删除的方法。

2.对给定的字符串长度,并将结果输出。

参考程序:

DATA SEGMENT

STRBUF DB ‘The sooner,the better !’,0

STRLEN DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DI,OFFSET STRBUF

MOV AX,0

CRI0: CMP BYTE PTR[DI],0

相关文档
最新文档