




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言程序设计 课程实验指导书(Assembly Language Programming)计算机科学与技术系 杨定安 编写佛山科学技术学院摘 要汇编语言实验主要使学生掌握DEBUG或DEB2000调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。目 录实验一 宏汇编程序(MASM)及汇编语言上机过程4实验二 程序的基本结构练习8实验三 汇编编译器的使用及程序调试11实验四 分支程序设计17实验五 循环程序设计19实验六 子程序
2、设计23实验七 汇编语言与C语言混合程序设计29实验一 宏汇编程序(MASM)及汇编语言上机过程一、实验目的 1.通过实验了解和熟悉微机系统的配置。2.学习在DEBUG状态下输入汇编源程序的方法。3.初步掌握调试(在DEBUG状态下)的过程。二、实验原理 1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。用单步跟踪的方法验证指令的功能。 2. 以下是给定的参考程序,并在实验时在每条指令的“; ”符号右边按要求填写指令的执行结果。注: 微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”; 在DEBUG状态下执行程序时
3、,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。三、实验仪器微机一台,U盘一块。四、实验步骤1.开机和关机操作顺序 开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。 关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。 2. 装入DEBUG程序 若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。一般C盘上装有DEBUG和DEB2000软件,若没有,可以用复
4、制命令从其它盘拷贝过来,然后从装有DEBUG和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。例如:C :MASM DEB2000 (回车符) (DEBUG 提示符) 当显示器出现提示符“”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。4. 用DEBUG的Register命令检查所有寄存器内容,并作记录。命令格式: R 寄存器名 检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-RR命令显示中标志位状态的含义如下表所示:标 志 名置 位复 位溢出Overflow(是/否)OVNV方向Direction(减量/
5、增量)DNUP中断Interrupt(允许/屏蔽)EIDI符号Sign(负/正)NGPL零Zero(是/否)ZRNZ辅助进位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO进位Carry(是/否)CYNC2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX系统将响应如下:AX FIF4:表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC
6、 PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如OV DN EI NG ZR AC PE CY-PONZDINV 5. 用DEBUG的Assemble命令输入汇编源程序。格式: A 内存地址 注:用“ ”符号括起来的部分表示可以省略。 该命令的功能是从指定的内存地址开始(括号不要输入)逐条输入汇编语言源程序并汇编成机器码存入内存。若地址缺省,则接上一个A命令最后一条指令之后输入汇编语句,若没有用过A命令,则从CS:0100H地址开始输入。例如: A 0CD3:0100在输入A命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。
7、每条指令均用回车()结束。若输入的指令有语法错误,DEBUG拒绝接收,并给出提示,此时可以重新输入。程序的最后一条指令输入完之后,再按一次回车键(),即可结束汇编命令,回到DEBUG提示符“”状态。 6. 用DEBUG的Unassemble命令反汇编。命令格式: U 起始地址终止地址 该命令的功能是从起始地址到终止地址反汇编目标码,缺省值是接上一个U命令或从CS:0100H地址开始。例如: U 显示器上将显示程序的内存地址、指令机器码的汇编源程序三列对照清单。 7. 用DEBUG的Trace命令单步跟踪程序。命令格式: T =起始地址 指令条数 注意:=符号不能缺该命令的功能是从指定的起始地址
8、开始逐条执行指令,每执行完一条指令,屏幕显示所有寄存器内容和下一条指令地址和指令。若=起始地址缺省,则T命令从CS:IP地址开始执行指令。 例如: T 重复这一过程,即可看到每条指令执行后,所有寄存器和标志寄存器的标志位内容。此时,要检查内存单元的数据,可用DEBUG的Dump命令,命令格式: D起始地址终止地址该命令的功能是从起始地址到终止地址,连续显示存贮器单元的内容。若地址缺省,则接上一个D命令或从DS:0100H地址开始显示。例如: D参考程序: MOV AX, 2000 ; AL=MOV DS, AX ; DS=NOT AX ; AX=XOR AX, AX ; AX=DEC AX ;
9、 AX=INC AX ; AX=MOV BX, 2030 ; BH=MOV SI, BX ; SI=MOV SI, BL ; 2030H=MOV WORD PTRSI, 10F ; 2030H= 2031H=MOV DI, SI ; DI=MOV DI+50, BH ; DI+50H=MOV BH, SI ; BH=MOV BL, DI+50 ; BL=MOV SP, 5000PUSH AX ; AX= SS:4FFEH= SS:4FFFH=PUSH BX ; BX= SS:4FFCH= SS:4FFDH=POP AX ; AX=POPF ; F=NEG BX ; BX=XCHG BX, AX
10、 ; BX=STD ; F=STI ; F=CLD ; F=CLI ; F=ADC DI, 2050 ; DI= F=ADC SP, DI ; SP= F=ADC AX, 1500 ; AX= F=SUB AX, BX ; AX= BX=SHL AH, 1 ; AH= RCL AX, 1 ; AX=SHR BH, 1 ; BH=RCR BL, 1 ; BL=MOV CL, 4 MOV DX, 80F0 ROL DX, CL ; DX= CL=INT 20 ; CS= IP=五、实验报告要求 1. 整理每条指令执行的结果,填到打印清单的右半部分(应注意内存数据检查的正确性)。 2. 比较实验记录
11、与理论分析的结果是否相同,若有不同,找出差别及问题所在。3总结本次实验的体会。实验二 程序的基本结构练习 一、实验目的 1. 熟悉IBM PC机的基本指令。 2. 继续熟悉计算机键盘及各功能键(参阅DOS操作手册)。 3. 继续学习DEBUG命令。 4. 验证指令的功能。 二、实验原理 在DEBUG状态下,分别输入下面各程序段,每输入完一个程序段,用G命令进行连续方式执行程序,在连续执行时,要记录程序的执行结果。 参考程序: 1. 在内存10000H单元开始,建立00H0FH00H 31个数,要求00H0FH数据逐渐增大,0FH00H逐渐减小。该程序从内存CS:0100H地址开始输入。首先运行
12、A100命令进入输入汇编语句状态。 13A2:0100 MOV AX, 1000 13A2:0103 MOV DS, AX 13A2:0105 MOV SI, 0 13A2:0108 MOV CL, 0F 13A2:010A XOR AX, AX 13A2:010C MOV SI, AL 13A2:010E INC SI 13A2:010F INC AL 13A2:0111 DEC CL 13A2:0113 JNZ 010C 13A2:0115 MOV CX, 10 13A2:0118 MOV SI, AL 13A2:011A INC SI 13A2:011B DEC AL 13A2:011D
13、 LOOP 0118 13A2:011F INT 20 注:转段指令的符号地址直接用绝对偏移地址,该地址在用A命令汇编输入时,可以看到程序全部运行完之后,可用DEBUG的Dump命令查看建立的数据块内容。例如: D1000:00 1E 2. 把上一个程序的执行结果(建立的31个字节数据块,其首地址在10000H),分几种方式传送到以下指定的区域。(a) 该程序从内存CS:0150H开始输入。把数据块传送到5050H开始的存贮区域中。首先运行A150命令进入输入汇编语句状态。然后将如下程序输入。DEBUG下不支持符号地址,如PPEA:标号等,在命令A下输入程序时,不能输入标号(如PPEA:),在
14、用到标号的指令(如LOOP,JNZ等),在其后直接输入要跳转的目的地址。 MOV AX, 1000 MOV DS, AX MOV SI, 0 MOV DI, 5050 MOV CX, 1F ; 数据块长度是31PPEA: MOV AL, SI MOV DI, AL INC SI INC DI LOOP PPEA INT 20 检查内存数据块的传送情况,可用“D”命令。(b) 用串传送指令MOVSB,把数据块传送到5150H开始的区域,该程序从内存CS:0200H开始输入。 MOV AX, 1000 MOV DS, 5150 MOV CX, 1F CLDPPEB: MOVSB DEC CX JN
15、Z PPEB INT 20 检查程序最后的执行结果,可用“D”命令,例如: D1000:5150(c) 用重复串操作指令“REP MOVSB”把数据块传送到5250H开始的区域。该程序从CS:250H地址开始输入。 MOV AX, 1000 MOV DS, 5250 MOV CX, 1F CLD REP MOVSB INT 20 检查程序的最后执行结果时,可用: D1000: 5250H(d) 用串操作的减量工作方式,把数据块传送到501FH开始的区域。该程序从CS:0300H开始输入。MOV AX, 101F MOV DS, 501F MOV CX, 1F STD REP MOVSB INT
16、 20 检查程序的最后执行结果,用D命令: D1000:5000 三、实验仪器 1. IBMPC 微机或兼容机一套。 2. 准备一U盘,用于存放你的程序。四、实验步骤 参照实验一的步骤,按照本实验程序的内容,分别输入各段程序,并单步和连续执行程序,记录每条指令的执行结果和每个程序段的最后结果。在作单步操作或用G命令设段点操作时,在暂停处,可以检查所有寄存器和有关内存单元的内容,这不会影响程序的继续执行。 若想把源数据块重新换一批数据,可以用DEBUG的Fill命令填充新的数据。例如: F1000:00 L1F 33 从1000:0000H开始的31个字节被替换成33H。五、实验预习要求1.继续
17、阅读PC微机DOS操作手册有关命令说明。2.认真阅读DEBUG调试程序的命令说明。 3.仔细阅读本实验给出的各程序段。4.写出每个程序段的结果数据(分析结果),并说明结果所在的位置(寄存器或存贮器)。六、实验报告要求1. 整理每个程序段在实验时的记录内容。 2. 比较每个程序段的特点。 3. 分析本次实验出现的问题,找出问题所在。 实验三汇编编译器的使用及程序调试一、 实验目的1.、掌握Masm的使用;掌握Link的使用;掌握Debug或Deb2000的使用;熟悉一种界面操作下的集成汇编语言编译器。二、 实验要求:1根据实验目的,认真完成实验中给出的任务;2根据实验过程和结果,完成实验报告;3
18、在实验报告中应认真写出自己的实验心得和体会;4鼓励同学进行交流,但是禁止抄袭!5每人一组,独立完成。三、 实验原理及内容:1、实验内容:本实验是汇编语言学习的第一个实验,要求利用汇编语言实现一个Dos界面下的最简单的“Hello World”程序,只要可以实现在屏幕上输出一行字符即可;2、实验原理:一般的汇编程序包括两个部分:数据段和代码段(有的程序还会有堆栈段),每个部分都有比较固定的格式; 汇编程序的输入和输出实现相对比较麻烦,需要调用Dos中断来实现,希望学习输入和输出中断是如何实现的; 对于在字符界面下的汇编程序从asm源代码到生成可执行exe文件中间有多个步骤,需要用到masm、li
19、nk,需要熟练掌握; 汇编语言的调试相对也比较麻烦,需要用到Debug或Deb2000命令,希望掌握常用的Debug或Deb2000选项,能够看懂反汇编的结果。四、 实验软硬件环境:奔腾系列机器,操作系统为Dos或者Windows系列,相关的汇编语言编译工具(MASM、LINK和DEBUG)以及集成编译器。五、 实验步骤和方法:本实验重点在于熟悉汇编语言编译器的使用及程序的调试,实验内容相对比较简单,但是中间需要大家熟练掌握其中涉及到的每一个步骤,为后续实验打下良好的基础。下面是以MASM 5.0,在winxp环境下,按照给定的任务为例进行的步骤说明(由于这是第一个汇编程序,我们提供一个最基本
20、的源程序供大家参考;):1、将包括MASM、LINK以及DEBUG或Deb2000的文件架MASM拷贝到计算机C盘的根目录下;2、打开记事本,输入如下代码:DATAS SEGMENT;数据段 msg db Hello World!, 13,10,$ ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT;堆栈段 ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT;代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX LEA DX,msg ;此处输入代码据段代码 mov ah,9
21、INT 21h MOV AH,4CH INT 21HCODES ENDS END START保存为firPro.asm,保存位置为“C:masm”。注意:后缀名一定要为“.asm”,否则,可能出现错误!使文件显示后缀名以便修改的方法如下图示:a) 打开资源管理器,选择文件夹选项,如图1-1所示;b) 将“隐藏已知文件类型的扩展名”选项前的去掉,如图1-2所示;c) 将文件名“firPro.txt”重命名为“firPro.asm”即可。图1-1 打开文件夹选项图1-2 去掉文件扩展名(1) 在“运行”窗口键入“cmd”,回车,打开字符界面,进入masm文件夹下,如图1-3所示;图1-3 进入ma
22、sm文件夹(2)键入masm firPro.asm,并回车,如图1-4所示。其中:Object filename是编译为目标文件的名称,直接回车,表示默认和源文件同名,只是后缀名不同,本试验中均为默认;编译之后文件夹中出现一个新文件:firPro.obj,如图1-5所示:图1-4 masm后的结果图1-5 masm命令的执行(3) 键入link firPro.obj,回车,如图1-6所示:其中:Run File是可执行的目标文件名,直接回车,表示默认和源文件同名,只是后缀名不同。编译之后文件夹中出现一个新文件:FIRPRO.exe,如图1-7所示:(4) 键入可执行文件名FIRPRO ,回车,
23、显示的运行结果如图1-8所示:(5) 利用Debug,进行反汇编,键入:Debug firpro.exe,回车,如下图1-9所示:(6) 在出现的光标后,键入U,出现反汇编后的结果,如图1-10所示:(7) 键入q,回车,推出反汇编程序,如图1-11所示:至此,我们对MASM、LINK以及DEBUG的使用方法已经有了比较清楚的了解。另外,我们还提供了另外一个集成的编译环境,“Masm for Windows集成实验环境”,大家可以仿照上述步骤,熟悉一下所提供的集成试验环境。希望大家在熟悉了最基本的masm、link以及Debug的基础之上再去使用所提供的集成试验环境!图1-6 link命令的执
24、行图1-7 编译之后出现的可执行文件图1-8 可执行文件的执行结果图1-9 反汇编之后的结果图1-10 反汇编命令U的结果图1-11 推出反汇编的命令四、 实验预习要求:认真阅读实验指导书附录部分的内容,了解最基本的汇编语言的知识,包括8088/8086的体系结构和指令系统,在以后的实验中将会不断的用到相关的指令,在实验课中给出的课件中的相关内容也请大家仔细研读。根据实验过程和实验结果完成实验报告,并按时上交五、 思考题:1、在图1-4中,masm filename.asm后,如果不是连续回车,而是输入字符串结果会有什么不同;2、在图1-11中,每行的类似于“0B4F:xxxx”表示什么意思?
25、 3、在图1-11中,为什么首行和源程序不同,而又有那些是相同的,可否给出一些原因? 注意:思考题不做硬性要求。实验四 分支程序设计一、 实验目的:通过上机编程,熟悉利用汇编语言设计不同种类分支程序的方法,掌握汇编语言中实现分支程序的相关汇编指令。二、 实验要求:(1) 设计并实现一个求解一组无符号字节序列中的最大值和最小值的汇编程序;(2) 每人一组,独立完成;(3) 根据实验目的,认真完成实验中给出的任务;根据实验过程和结果,完成实验报告并及时上交相关文档;在实验报告中应认真写出自己的实验心得和体会;鼓励同学进行交流,但是禁止抄袭!三、 实验原理及内容:在实际问题中,需要对不同情况做不同的
26、处理,这就需要使用到分支结构。汇编语言中的分支程序是利用条件转移指令或者跳转表,使程序在执行到某条指令后,根据运行结果是否满足一定条件来改变程序执行的顺序,然后执行不同的条件下对应的指令。如果进行的是逻辑分支,可以用每次分两支的方法来达到程序多分支的目的。一般而言,分支程序的结构通常有三种形式:不完全分支、完全分支和多分支,如图所示:在本实验中,我们以求解一组无符号字节序列中的最大值和最小值的问题进行讲解分支程序的设计和实现。最终结果是序列中的最大数和最小数,我们可以将寄存器BX的高位和低位分别用于存放最大数和最小数,然后,将序列中的两个数存入其中,再将序列中的其他数分别与BH和BL中的数进行
27、比较,如果大于BH或者小于BL,则将寄存器中的数用当前取出的数进行替换,完全比较之后,BH和BL中数即为整个序列中的最大数和最小数。四、 实验软硬件环境:奔腾系列机器,操作系统为Dos或者Windows系列,相关的汇编语言编译工具(MASM、LINK和DEBUG)以及集成编译器。五、 实验步骤和方法:本实验重点算法的理解以及相关指令的灵活应用。 (1) 分析问题,设计算法。;(2) 根据上述算法,编制程序流程图,如图4-1所示;图4-1 程序流程图(3) 根据流程图,编写实现代码;(4) 程序汇编为目标文件.obj。(5) 目标文件.obj链接为可执行文件.exe。;(6) 使用Debug调试
28、运行程序,设置断点,查询相关寄存器内容,调试直至得到正确的结果。(7) 根据实验过程和实验结果完成实验报告,并按时上交。注意:在程序设计中,注意相关的寄存器的用途,如CX的作用,SI的作用,以及汇编语言中,一个寄存器的高低位可以分开使用的特点。六、 实验预习要求:预习相关的汇编语言指令,着重是理解相关寄存器的特定用途,如:SI、CX等,以及寄存器的高低位可以分开使用的特点。学校印刷的标准报告纸写实验报告。七、 思考题:(1) 总结汇编语言中的寄存器分为那几类,每类各有什么特点?(2) 总结汇编语言中如何利用相关指令实现分支程序设计?实验五 循环程序设计一、实验目的进一步掌握分支程序和循环程序的
29、编写方法。二、实验原理 设有10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。试编制程序分别统计低于60分、6069分、7079分、8089分、9099分及100分的人数存放到s5、s6、s7、s8、s9及s10单元中。这一题目的算法很简单,成绩分等部分采用分支结构,统计所有成绩则用循环结构完成。程序框图如下图所示。 三、实验仪器 1. IBMPC 微机或兼容机一套。 2. 准备一张已格式化过的用户软盘(空盘),用于存放你的程序。 开 始 初始化计数单元 初始化循环计数值初始化首地址取一个成绩 Y60?S5+1 NY70?S6+1 NY80?S7+1 S7+
30、1 NY90?S8+1 S8+1 NN=100?S9+1 YS10+1 修 改 地 址 N 循环结束? Y 结 束程 序 框 图四、实验步骤输入编写的源程序,进行调试。参考程序如下:;PROGRAM TITLE GOES HEREresult;*datarea segment ;define data segment grade dw 56,69,84,82,73,88,99,63,100,80 s5 dw 0 s6 dw 0 s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0datarea ends;*prognam segment ;define code segment;-
31、main proc far ; main part of programassume cs:prognam, ds:datareastart: ; 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
32、 ; 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 addrcompare: mov ax, bx ; get a result cmp ax, 60 ; 60? jl five cmp ax, 70 ; 70? jl s
33、ix cmp ax, 80 ; 80? jl seven cmp ax, 90 ; 90? jl eight cmp ax, 100 ; =100? jne nine inc s10 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 s5change-addr: add bx, 2 loop compa
34、re ret ; return to DOSmain endp ; end of main part of program; -prognam ends;* end start ; end assembly五、实验要求1读懂所给的程序。2编写程序将存放于S5、S6、S7、S8、S9及S10单元中的数据在屏幕上显示出来。实验六 子程序设计一、实验目的进一步熟悉排序方法。二、实验原理 学生成绩名次表实验:将0100之间的10个成绩存入首址为1000H的单元中。1000H+i表示学号为i的学生成绩,编写程序能在2000H开始的区域排出名次表。2000H+i为学号i的学生的名次。参考主程序:入口 段寄
35、存器和堆栈初始化 显示“请输入10个学生的成绩”SI指向成绩表首址 学生数送CX 调GETNUM,读学生成绩送SI中 SI加1指向下一单元 CX减1为0? N Y 学生数送CX DI指向名次表首址调SCAN子程序,扫描成绩表 计算名次填入DX学号对应的名次表单元 CX 减1为0? N N Y 调DISP1,显示 排定的学生名次 返回 DOS程序SCAN:入口 CX入栈保存学生数送CXAL中放最低成绩00HBX和SI均指向成绩表首址 ALSI? Y N SI送AL中,DX记录对应学号SI加1指向下一单元 N CX减1为0?Y将本次扫描成绩最高者清0CX 出栈返 回三、实验仪器 1. IBMPC
36、微机或兼容机一套。 2. 准备一张已格式化过的用户软盘(空盘),用于存放你的程序。四、实验步骤输入编写的实验程序,进行调试。参考程序: CRLF MACROMOV AH, 02HMOV DL, 0DH INT 21H MOV AH, 02HMOV DL, 0AHINT 21HENDMDATA SEGMENTSTUNUM EQU 10MESS DB INPUT 30 STUDENTS SCORE: ,0DH,0AH,$ERROR DB INPUT ERROR!,0DH,0AH,$ ORG 1000HSCORE DB 30 DUP (?) ORG 2000HSEQU DB 30 DUP (?)DA
37、TA ENDSSTACK SEGMENTSTA DW 32 DUP (?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV SP, TOP ; 初始化 MOV AH, 09H MOV DX, OFFSET MESS INT 21H ; 显示提示信息 MOV SI, OFFSET SCORE ; 成绩表首址 MOV CX, STUNUM ; 学生数送CXUUU: CALL GETNUM ; 读取键入数值送DX MOV
38、SI, DL ; 存入成绩表缓冲区 INC SI ; 指向下一单元 LOOP UUU MOV CX, STUNUM ; 学生数 MOV DI, OFFSET SEQU ; 名次表首址VVV: CALL SCAN ; 扫描子程序 MOV AL, STUNUM ; 学生数 SUB AL, CL INC AL ; 计算名次 MOV BX, DX MOV DI+BX, AL ; 记DX学号对应名次 LOOP VVV MOV CX, STUNUM ; 学生数 MOV SI, OFFSET SEQU ; 名次表首址WWW: MOV AL, SI CALL DISP1 CRLF INC SI LOOP WWW ; 显示排定的学生名次 MOV AX, 4C00H INT 21HSCAN PROC NEAR ; 子程序,每扫描一遍成绩表缓冲区, 找出其中成绩最高者由DX指针指示对应学生 之后将该成绩清除,以便下一次扫描 PUSH CXMOV CX, STUNUM ;学生数MOV AL, 00H ;最低成绩MOV BX, OFFSET SCOREMOV SI, BX ;指向成绩表首址CCC: CMP AL, SIJAE JJJ ;AL中的成绩不低于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能传感系统集成对装配质量实时反馈的瓶颈突破
- 智能交互界面与驾驶场景的跨模态反馈机制在夜间安全场景的适配性
- 无人机巡检与切割机协同作业的5G边缘计算时延优化方案
- 新能源汽车驱动系统对减速机马达NVH特性提出的超低振动阈值挑战
- 新型耐蚀性钢种开发对板坯热连轧工艺窗口的拓展需求
- 2025年中国CD软件数据监测报告
- 新型固态电容拓扑结构对电网电压暂降抑制效能的拓扑-控制协同优化研究
- 文化符号解构:传统榫卯技艺在弧形家具结构中的现代转译
- 数据安全与实时响应的算力分配矛盾在边缘计算中的具象化挑战
- 2025年中国超市用购物车数据监测报告
- JGJ406T-2017预应力混凝土管桩技术标准附条文
- 智能硬件与系统
- 物业发给业主的告知函模板范本
- 静脉输液治疗安全管理与风险防范模板
- 质量知识竞赛题库及答案
- 03S702钢筋混凝土化粪池图集
- 新高三开学第一课主题班会(共28张PPT)
- 上海印象旅游城市介绍模板(免费下载)
- 社会学概论全套PPT完整教学课件
- 六年级班级活动安排一览表
- 英语外研八年级上册群文阅读课PPT 韩茜
评论
0/150
提交评论