福建农林大学计算机与信息学院本科实验报告规范
一、
二、 每个实验项目一份实验报告。 实验报告内容一般包括以下几个内容:
1、 实验项目名称:
2、 实验目的和要求:
3、 实验内容和原理:
4、 实验环境:本次上机实验所使用的软硬件平台。
5、 算法描述及实验步骤:用算法、流程图或者源代码的形式表达算法设计思想与算法实现步骤。
6、 调试过程:详细记录程序在调试过程中出现的问题及解决方法。
7、 实验结果:记录测试数据及程序执行的结果。
8、 总结:对上机实验结果进行分析、上机的心得体会及改进意见。
9、 附录(调试正确的源程序清单)
福建农林大学计算机与信息学院
(程序设计类课程)
实验报告
课程名称: 汇编语言
姓 名:
系: 计算机与信息学院
专 业: 计算机科学与技术
年 级: 12级
学 号:
指导教师:
职 称: 讲师
20xx年 12 月 7 日
实验项目列表
福建农林大学计算机与信息学院实验报告
系: 专业: 计算机科学与技术 年级: 2012 姓名: 学号: 实验室号__田513 计算机号
实验时间: 指导教师签字: 张旭玲 成绩: 实验名称:汇编程序的汇编及执行
一、实验目的和要求
(1)熟悉汇编程序的汇编、连接、执行过程;
(2)生成LST文件,查看LST文件;
(3)生成OBJ文件,修改语法错误;
(4)生成EXE文件;
(5)执行程序。
二、实验内容和原理
1)将下面的数据段输入,取名1.ASM,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?
DATA SEGMENT
ORG 20H
NUM1=8
NUM2=NUM1+10H
DA1 DB ‘IBM PC’
DB 0AH, 0DH
COUNT EQU $-DA1 DATA END ENDS
2)输入下面错误的文件,修改错误语句。(MASM没有出现错误即可。不必连接、运行。)
DATA SEGMENT VAR1 DB 0, 25, ODH, 300 ;ODH改为0DH,300改为30 ;0A4H VAR2 DB 12H, A4H, 6BH
VAR3 DB ’ABCDEF’ VAR4 DW 1234H, 5678H VAR5 DW 10H DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS: CODE, DE: DATA ;de改为ds
;BEING改为START: ;10H去掉H BEING MOV AX, DATA
MOV DS, AX LEA SI, VAR5
MOV BX, OFFSET VAR2 MOV [SI], 0ABH ;byte ptr [si] ;AX改为AL ;内存之间不可赋值,删除 ;内存之间不可赋值,删除 MOV AX, VAR1+2 MOV [BX], [SI] MOV VAR5+4, VAR4 MOV AH, 4CH INT ENDS
END START 21H CODE
3)输入下面程序并运行
STACKS SEGMENT STACK
128 DUP(?)
ENDS
SEGMENT
DB ‘WELCOME!’, 13, 10, ‘$’
ENDS
SEGMENT
ASSUME CS: CODES, DS: DATAS DW STACKS DATAS STRING DATAS CODES
START: MOV
MOV LEA MOV INT AX, DATAS DS, AX DX, STRING AH, 9 21H MOV AH, 4CH
INT ENDS
END 21H CODES START
三、实验环境
PC机,DOS操作系统
四、算法描述及实验步骤
汇编程序从编写到执行的过程
编程→.ASM→编译→.OBJ→连接→.EXE→加载→内存中的程序→执行
1)编写源程序
用EDIT或记事本输入各段,并存储成源程序(保存在MASM目录下),扩展名为ASM。
2)对源程序进行汇编、连接
操作如下:
(1)在DOS状态下,进入MASM目录;
(2)输入命令:MASM 文件名(连同扩展名);
(3)在系统出现的提示中输入:
object filename[.obj]:按回车键。
Source listling[nul.lst]:输入:文件主名,生成lst文件,也可以不生成,直接按回车键。Lst文件用于查看编译为目标文件的过程中产生的中间结果。
Cross-reference [nul.crf]:按回车键。
(4)如果系统没有提示出错,那么编译过程就完成了。如果提示错误则应用edit打开源文件进行修改,然后再重复2和3步骤
(5)输入:link 文件主名(不要输扩展名,也可以输入扩展名.obj)
run file [.exe]:按回车键。
List file [nul.map]:按回车键。
Libraries [.lib]:按回车键。
(6)没有提示错误,汇编过程就结束了,产生了exe可执行文件。如果出现‘no strack segment’的错误警告,不用理会。
3)执行程序(由DOS中的COMMAND命令将文件加载入内存)
在DOS提示符下直接输入文件主名就可以执行文件了。程序执行后,有的会显示结果,有的可能执行后什么结果都没有,是因为程序中没有显示命令。
五、调试过程
六、实验结果
可知,da1,da2的偏移量分别为0020和0026;count 的值为0008.
七、总结
附录:
福建农林大学计算机与信息学院实验报告
系: 专业: 计算机科学与技术 年级: 2012级 姓名: 学号: 实验室号__田513 计算机号 (学号)
实验时间: 指导教师签字: 张旭玲 成绩:
实验名称:DEBUG的使用
一、实验目的和要求
(1)学习使用DEBUG的命令;
(2)使用DEBUG命令在数据段中查看程序运行的结果;
(3)利用DEBUG运行简单的程序段。
二、实验内容和原理
1)输入程序观察寄存器变化
使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS: IP寄存器的内容
MOV ADD MOV ADD MOV ADD MOV MOV ADD ADD ADD MOV ADD ADD AX, 4E20 AX, 1416 BX, 2000 AX, BX BX, AX AX, BX AX, 001A BX, 0026 AL, BL AH, BL BH, AL AH, 0 AL, BL AL, 9C
CS为代码段的内容,是固定不变的,IP为下一条命令的起始偏移地址。
2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。如果是将小写字母改成大写字母带注释的语句该如何修改?
DSEG MSG1 DSEG CSEG SEGMENT DB ‘abc’ ENDS SEGMENT
CS: CSEG, DS: DSEG
AX, DSEG
DS, AX
BX, MSG1
CX, 3
AL, [BX]
AL, 11011111B ;将AL中的ASCII码的第5位置0,
;变成大写字母。 ASSUME START: MOV MOV LEA MOV MOV AND S:
MOV [BX], AL INC LOOP MOV MOV INT ENDS BX S AL, 0 AH, 4CH 21H CSEG
END START 3)程序的跟踪执行操作 在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢? 程序执行过程的跟踪操作步骤如下:
(1)在DOS下输入:DEBUG 文件名.EXE (2)在DEBUG提示符下输入U命令 如果程序中有数据段,可以看到反汇编后第一句可执行语句为: A地址:B地址 MOV AX, K地址 如:1261:0000 MOV AX, 1260 其中:K地址就是数据段的段寄存器内容,A地址为代码段段寄存器地址,B地址为程序第一条指令的偏移地址。
(3)可以用T命令单步执行指令,执行到 MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000)
(4)用D命令查看程序执行后数据段的变化 输入:D K地址:0 (如:D1260:0) 在显示的数据中,对照源程序或LST文件查看结果所在的偏移地址的内容。 4)输入下面的程序,按实验一和上面的步骤运行一遍。这是一个两个数相与的程序。结果存放在MSG2单元中,偏移地址为?值为多少?
DSEG MSG1 MSG2 DSEG CSEG
SEGMENT DW 7856H, 2038H DW ? ENDS SEGMENT ASSUME CS: CSEG, DS: DSEG
START: MOV
AX, DSEG MOV DS, AX MOV AND MOV
AX, MSG1 AX, MSG1+2 MSG2, AX
MOV MOV INT AL, 0 AH, 4CH 21H CSEG ENDS
END START
偏移地址为0004,值为1060F000。
3.编写调试下面的程序,用DEBUG查看数据段中的结果
1)Z?((W?X)*10?5)/(X?Y),X,Y,W为字节类型变量,结果存于Z单元,写出数据段和代码段。
DSeg Segment
x db 38h
y db 20h
w db 30h
z dw ?
ten db 10
DSeg ends
CSeg Segment para public 'CODE'
Assume cs:CSeg,ds:DSeg
Start: mov ax,DSeg
mov ds,ax
mov bl,x
add bl,y ;先求分母,存于BL
mov al,w
sub al,x
imul ten
add ax,5
idiv bl
mov z,ax
mov al,0
mov ah,4ch
int 21h
CSeg ends
end Start
2)X,Y为字节类型数,求Z?((X?Y)*8?(X?Y)*2)/16,写出完整的数据段和代码段,不用乘除指令。
dseg segment
x
y
z db 2H db 2H dw ?
ends dseg
cseg segment para public 'code'
assume cs:cseg,ds:dseg
start:mov ax,dseg
mov ds,ax MOV ADD CBW MOV CL,3 AL,X AL,Y SAL AX,CL MOV MOV AL,X BX,AX SUB AL,Y CBW MOV CL,1 SAL AX,CL SUB BX,AX MOV CL,4 SAR BX,CL
mov z,BX mov al,0 mov ah,4ch int 21h
cseg ends
end start
三、实验环境
PC机,DOS操作系统
四、算法描述及实验步骤
五、调试过程
六、实验结果
七、总结
附录:(程序)
福建农林大学计算机与信息学院实验报告
系: 专业: 计算机科学与技术 年级: 2012 姓名: 学号: 实验室号__田513 计算机号 (学号) 实验时间: 指导教师签字: 张旭玲 成绩: 实验名称:程序的调试与纠错
一、实验目的和要求
(1)学习调试程序,查找逻辑错误;
(2)学习分支语句的编程和调试;
(3)学习循环语句的编程和调试。
二、实验内容和原理
1)有10个数,统计正数的个数,存放在变量M中中。经过汇编后,形成EXE文件。在DEBUG中,先用G=0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。用单步执行命令T=0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确?(AL寄存器中存放正数的个数)
DSEG MSG M DSEG CSEG
SEGMENT DB 4, -2, -6, 0, 5, 67, 8, -3, 5, 6 DB ? ENDS SEGMENT ASSUME CS: CSEG, DS: DSEG
START: MOV
MOV MOV MOV LEA
MOV
CMP
JBE
INC AX, DSEG DS, AX CX, 10 AL, 0 SI, MSG BL, [SI] BL, 0 NEXT AL L1:
NEXT: INC
LOOP MOV MOV MOV INT
ENDS
END SI L1 M, AL AL, 0 AH, 4CH 21H CSEG
START
在这一步骤中可发现,当si=0001时,al=02,出现错误,al应为01.经过检查程序发现为JBE NEXT这条语句错误,这是无符号的比较,应改为JLE NEXT。
2)数据段中是一组无符号数,将最小数存放在M单元中。按上题方法查找一处逻辑错误。
DSEG MSG SEGMENT DB 13, 15, 7, 25, 24 M DB ? DSEG CSEG
ENDS SEGMENT ASSUME CS: CSEG, DS: DSEG
START: MOV
MOV MOV MOV MOV
CMP
JB
MOV AX, DSEG DS, AX CX, 4 AL, MSG SI, OFFSET MSG+1 AL, [SI] NEXT AL, [SI]
si L1: NEXT: inc
LOOP L1
MOV M, AL MOV AL, 0 MOV
AH, 4CH
INT CSEG END 21H ENDS START
最后输出结果中发现si=0001,实际为0004。
由以上结果中可看出最后结果为07。
3)编程:在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。
dseg segment
buf db '10da205d0f' result db ?
dseg ends
cseg segment
assume cs:cseg,ds:dseg
start:mov ax,dseg
mov ds,ax mov al,0 lea si,buf mov cl,10
mov bl,byte ptr[si] again:
cmp bl,30h jne next inc al
next:inc si
loop again mov result,al mov al,0 mov ah,4ch int 21h
cseg ends
end start
由结果可看出答案为3,正确。
4)编程:Y?
i?1?8?A?B,Ai,Bi为字节型无符号数,分别存于NUM1和NUM2开ii始的连续存储单元中,结果存于REST单元中。
DSeg Segment
num1 db 12,34,56,78,65,02,39,8 num2 db 98,65,32,74,78,12,03,56 result dw ?
DSeg ends
CSeg Segment para public 'CODE' Assume cs:CSeg,ds:DSeg
Start: mov ax,DSeg
mov ds,ax mov cx,8
mov bx,0
mov si,offset num1 mov di,offset num2 again: mov al,[si]
mul byte ptr[di]
add bx,ax
inc di
inc si
loop again
mov result,bx
mov al,0 mov ah,4ch int 21h
CSeg ends
end
Start
可以看出最后答案为40e1H。
三、实验环境
PC机,DOS操作系统
四、算法描述及实验步骤
五、调试过程
六、实验结果
七、总结
附录:
福建农林大学计算机与信息学院实验报告
系: 专业: 计算机科学与技术 年级: 2012级
姓名: 学号: 1 实验室号__田513 计算机号 21
实验时间: 指导教师签字: 张旭玲 成绩: 实验名称:DOS功能调用
一、实验目的和要求
(1)学习子程序的编写,主子程序的调用;
(2)不同模块间程序的调用和调试。
二、实验内容和原理
1)数据段中的3个字符,调用子程序将其逐个显示出来。子程序的功能是显示一个字符。单步执行,对CALL语句和RET语句观察SP,IP的变化,并用D命令查看栈顶的内容。
DATA MAG DATA CODE SEGMENT DB ‘ABC’ ENDS SEGMENT ASSUME CS: CODE, DS: DATA START: MOV
MOV MOV MOV AX, DATA DS, AX SI, 0 CX, 3
LL:
MOV DL, MAG[SI] CALL MADD INC LOOP MOV INT SI LL AH, 4CH 21H
MADD PROC
MOV AH, 02H INT 21H
RET MADD ENDP CODE ENDS
END START
程序显示结果:
D命令查看栈顶内容:
2)阅读S31.ASM和S32.ASM两个模块中的程序,并分别汇编,然后连接成一个可执行文件S31.EXE。
具体步骤如下:
MASM S31.ASM(分别汇编) MASM S32.ASM LINK S31 S32 (将两个文件连接成为一个文件名为S31) S31.EXE (运行)
3)编程:利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来。(也可以将找到的不相等字符逐个显示,用INT 21H的02功能调用)
4)编程:子程序搜索指定字符缓冲区中是否有N,如果有用Y替代。调用子程序将
BUF1,BUF2,BUF3中的N全部用Y替代。
data segment
buf1 db 'I am a student!','$' len1=$-buf1 buf2 db 'ewfhefnfn','$' len2=$-buf2 buf3 db 'hdinky','$' len3=$-buf3 m db 13,10,'$'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
cmmp
l1: cmp byte ptr [si],'n' proc lea si,buf2 mov cx,len2 call cmmp lea si,buf3 mov cx,len3 call cmmp mov ah,4ch int 21h mov ds,ax lea si,buf1 mov cx,len1 call cmmp mov dx,si
jnz next mov al,'y' mov [si],al
next:inc si
mov ah,09h int 21h lea dx,m ;回车换行 int 21h ret
endp ;显示字符串 loop l1 cmmp
code ends
end start
程序结果如下:
三、实验环境
PC机,DOS操作系统
四、算法描述及实验步骤
五、调试过程
六、实验结果
七、总结
附录:(程序)
NAME S31.ASM
不同模块间的段间调用。从键盘输入2位非压缩BCD数,存入AX寄存器中。为了将其转换为二进制数,编写一个子程序TRAN。显示子程序DISP完成将16进制数转换为对应的ASCII码并显示该字符,显示子程序在另一模块S32中。输入数据为00时结束。
EXTRN DISP: FAR CODE SEGMENT ASSUME PARA ‘CODE’ CS: CODE START: MOV
INT MOV INT MOV MOV CMP JE CALL CALL JMP AH, 01H 21H BL, AL 21H AH, AL AL, BL AX, 3030H EXIT NEAR PTR TRAN FAR PTR disp START
EXIT: MOV AH, 4CH INT PROC AND 21H NEAR ;将输入的ASCII码转换成2进制数 AX, 0F0FH ;将ASCII码转换成非压缩BCD码, ;高位在AL中 TRAN
MOV MOV MUL ADD RET ENDP ENDS END BL, AH CL, 10D CL AL, BL TRAN CODE START
NAME S32.ASM PUBLIC DISP CODE1 SEGMENT ASSUME PARA ‘CODE’ CS: CODE1 DISP PROC FAR
MOV
MOV
MOV
ROLL: MOV
ROL
MOV
AND
CMP
JBE
ADD
NEXT1: ADD
MOV
INT
DEC
JNZ
RET
DISP ENDP
CODE1 ENDS
END BL, AL BH, 00 CH, 4 CL, 4 BX, CL DL, BL DL, 0FH DL, 9 NEXT1 DL, 07H DL, 30H AH, 02H 21H CH ROLL
福建农林大学计算机与信息学院实验报告
系: 专业: 计算机科学与技术 年级: 2012 姓名: 学号: 实验室号__田513 计算机号 (学号) 实验时间: 指导教师签字: 张旭玲 成绩: 实验名称:子程序
一、实验目的和要求
(1)学会DOS中关于显示功能调用指令的用法;
(2)领会修改显存方法显示字符。
二、实验内容和原理
1)输入一个字符,显示出来。
2)输入一个字符串,显示出来。
3)BUF开始的3个16位二进制数用十六进制数的形式显示出来。
(1)理解程序
(2)输入程序,汇编,运行(在DOS状态下输入:文件名.EXE),观察结果。
(3)如果要分行显示,程序要如何修改?
MOV MOV MOV
SI, 0 BX, BUF[SI] CH, 4 DATA BUF DATA CODE SEGMENT DW 4F59H, 56A8H, 0FF90H ENDS SEGMENT ASSUME CS: CODE, DS: DATA START: MOV MOV AX, DATA DS, AX P:
L: MOV ROL MOV AND CMP JB ADD CL, 4 BX, CL DL, BL DL, 0FH DL, 10 NEXT DL, 7 DL, 30H AH, 2 21H CH L
SI
SI
SI, 4
P
AH, 4CH
21H NEXT: ADD MOV INT DEC JNZ INC INC CMP JNA MOV INT
CODE ENDS END START
4)直接改变显存内容显示。
(1)显存空间分配:
内存地址空间中,B8000H-BFFFFH共32KB的空间,为80×25彩色字符模式显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
80×25=2000个字符,每个字符在缓冲区中占2个字节,一个字节存放ASCII码,一个字节存放字符属性(字符颜色、字符背景颜色、闪烁、高亮度)
(2)偏移地址计算:
如第2行,第40列:(2-1)×160+40×2 这个偏移地址中存放字符的ASCII码, (2-1)×160+40×2+1这个偏移地址中存放字符的属性。
第M行,第N列的一般计算公式为:
(M-1)×160+N*2 存放ASCII码
(M-1)×160+N*2+1 存放属性
(3)运行下列程序,在屏幕的第1行,会显示一个字符X。根据上面(1)、(2)点理解程序段。
STACK SEGMENT DB 128 DUP (0) STACK ENDS CSEG
SEGMENT ASSUME CS: CSEG, SS: STACK
START: MOV
MOV MOV MOV MOV MOV
MOV
MOV
MOV AX, STACK SS, AX SP, 128 AX, 0B800H ES, AX AH, ‘X’ ES: [160*1+40*2], AH AL, 0 AH, 4CH S:
INT 21H ENDS
END START CSEG
5)编程显示以下图案。
*********
*******
*****
***
*
DSeg Segment
Msg db 0dh,0ah,'$' ;换行 DSeg ends
stack segment stack
dw 100h dup(?)
stack ends
CSeg Segment para public 'CODE' Assume cs:CSeg,ds:DSeg start: mov ax,dseg
mov ds,ax
mov bx,9
lp: mov cx,bx
lop: mov dl,'*' ;显示连续的*号,个数在CX中
mov ah,2
int 21h
loop lop
lea dx,msg ;换行,也可以用程序后面的那段指令来替代 mov ah,09h
int 21h
dec bx ;准备显示下一行,显示的个数加1
dec bx cmp bx,-1
jg lp
mov al,0
mov ah,4ch
int 21h
CSeg ends
end Start
6)编写程序,统计字缓冲区中的20个数据的正数、负数、0的个数,并将统计结果以16进制形式显示出来。
DATA SEGMENT
BUF
DW
0,-1,2,4,3,-4,5,6,-7,-6,9,-10,11,14,17,18,-16,-15,8,-13,20,22,-23,0,21
a1 db 0 ;存放正数个数
a2 db 0 ;存放负数个数
a3 db 0 ;0的个数
STR1 DB 'THE NUMBER OF plus IS:','$'
STR2 DB 'THE NUMBER OF minus IS:','$'
STR3 DB 'THE NUMBER OF zero IS:','$'
STR4 DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,BUF
MOV CX,25
LOP: CMP word PTR[SI],0
jge l1 ;>=0转l1
INC a2 ;负数
JMP L3
L1: je l2 ;=0转L2
INC a1 ;正数
JMP L3
L2: INC a3 ;零
L3: ADD SI,2
LOOP LOP
LEA DX,STR1 ;显示正数的字符串
MOV AH,09H
INT 21H
mov bh,0
mov bl,a1
CALL DISP ;通过调用显示子程序显示正数的个数,子程序中的要显示的数字存于bx中
LEA DX,STR4 ;回车换行
MOV AH,09H
INT 21H
LEA DX,STR2
MOV AH,09H
INT 21H
mov bl,a2
CALL DISP
LEA DX,STR4 ;回车换行 MOV AH,09H
INT 21H
LEA DX,STR3
MOV AH,09H
INT 21H
mov bl,a3 CALL DISP
MOV AH,4CH
INT 21H
DISP PROC ;显示BX中的数 mov ch,4 roll: mov cl,4 rol bx,cl mov dl,bl and dl,0fh cmp dl,9 jbe next1 add dl,07h next1: add dl,30h mov ah,02h int 21h dec ch
jnz roll RET
DISP ENDP
CODE ENDS
END START
三、实验环境
PC机,DOS操作系统
四、算法描述及实验步骤
五、调试过程
六、实验结果
七、总结
附录(程序):
一实验内容1DEBUG的启动及其基本命令的使用2内存操作数与寻址方式1利用DEBUG程序中的E命令将两个多字节数12345678H…
学生实验报告册20xx20xx学年第1学期实验名称汇编语言程序设计学院信息与电气工程学院班级09级计算机科学与技术2班学号1351…
实验一汇编语言的源程序的输入一实验目的1通过实验了解和熟悉微机系统的配置2学习在DEBUG状态下输入汇编源程序的方法3初步掌握调试…
福建农林大学金山学院课程名称姓名系专业年级学号指导教师职称程序设计类课程实验报告汇编语言庄建军信息与机电工程电子信息工程专业20x…
汇编语言程序设计第一次上机作业1.从键盘上接受一个字符,找出他的前导字符和后继字符,按顺序显示这三个字符。寄存器分配:AL:存输入…
汇编语言程序设计实验报告学号:****班级:电气信息类1005姓名:陆**指导老师:***实验一、汇编语言上机的基本过程及环境【实…
实验一1熟悉汇编语言程序调试环境及顺序程序设计一实验目的及要求1学习及掌握汇编语言源程序的书写格式和要求明确程序中各段的功能和相互…
课程编号B080103020汇编语言程序设计实验报告东北大学软件学院实验1数据传送指令实验目的了解和掌握MOVPUSHPOPXCH…
南华大学计算机科学与技术学院实验报告(20##~20##学年度第二学期)课程名称:汇编语言与接口技术实验一熟悉debug和指令系统…
华北科技学院综合性实验报告课程名称汇编语言实验学期20##至20##学年第1学期学生所在系部年级专业班级学生姓名学号任课教师实验成…