《汇编语言程序设计》-实验指导书 联系客服

发布时间 : 星期四 文章《汇编语言程序设计》-实验指导书更新完毕开始阅读5ccd423eaeaad1f346933feb

s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0 datarea ends

;************************************ prognam segment ;define code segment ;----------------------------

main proc far ; main part of program assume cs:prognam, ds:datarea

start: ; starting execution address ; set up stack for return

push ds ; save old data segment sub ax,ax ; put zero in AX push ax ; save it on stack ; set DS register to current data segment

mov ax,datarea ; datarea segment addr mov ds,ax ; into DS register ; MAIN PART OF PROGRAM GOES HERE

mov s5, 0 ; initialize counter mov s6, 0 mov s7, 0 mov s8, 0 mov s9, 0 mov s10, 0

mov cx, 10 ; initialize loop count value mov bx, offset grade ; initialize first addr compare:

mov ax, [bx] ; get a result cmp ax, 60 ; <60? jl five

cmp ax, 70 ; <70? jl six

cmp ax, 80 ; <80? jl seven

cmp ax, 90 ; <90? jl eight

cmp ax, 100 ; =100? jne nine inc s10

21

jmp short change-addr nine: inc s9

jmp short change-addr eight: inc s8

jmp short change-addr seven: inc s7

jmp short change-addr six: inc s6

jmp short change-addr five: inc s5 change-addr:

add bx, 2 loop compare

ret ; return to DOS

main endp ; end of main part of program ; ------------------------------ prognam ends

;*************************** end start ; end assembly

五、实验要求

1.读懂所给的程序。

2.编写程序将存放于S5、S6、S7、S8、S9及S10单元中的数据在屏幕上显示出来。

22

实验六 子程序设计

一、实验目的 二、实验原理

学生成绩名次表实验:将0~100之间的10个成绩存入首址为1000H的单元中。1000H+i表

示学号为i的学生成绩,编写程序能在2000H开始的区域排出名次表。2000H+i为学号i的学生的名次。 参考主程序:

入口 段寄存器和堆栈初始化 显示“请输入10个学生的成绩” SI指向成绩表首址 学生数送CX 调GETNUM,读学生成绩送[SI]中 SI加1指向下一单元 CX减1为0? N Y 学生数送CX DI指向名次表首址

计算名次填入DX学号 对应的名次表单元 CX 减 1 为 0 ? N N 调SCAN子程序,扫描成绩表

进一步熟悉排序方法。

Y 调DISP1,显示 排定的学生名次

23 程序SCAN:

返回 DOS 入口 CX入栈保存 学生数送CX AL中放最低成绩00H BX和SI均指向成绩表首址 AL≥[SI]? Y N [SI]送AL中,DX记录对应学号 SI加1指向下一单元 Y 将本次扫描成绩最高者清0

CX 出栈 返 回 N CX减1为0? 三、实验仪器

1. IBM-PC 微机或兼容机一套。

2. 准备一张已格式化过的用户软盘(空盘),用于存放你的程序。

四、实验步骤

输入编写的实验程序,进行调试。 参考程序:

CRLF MACRO

MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H

MOV DL, 0AH INT 21H ENDM

DATA SEGMENT

24