ASM实验02
东华大学计算机病毒实验二报告(计算机com病毒)资料
计算机病毒实验报告姓名:学号:老师:日期:实验二一、实验目的1、掌握COM病毒的传播原理。
2、掌握MASM611编译工具的使用。
二、实验内容1、安装MS-DOS 7.10环境。
虚拟机安装该环境亦可,步骤在此不再赘述。
2、在MS-DOS C:\MASM目录下安装MASM611,然后将binr目录下的link.exe复制到bin目录下。
3、在C:\MASM\Bin目录下建立del.txt文件,并且将“”和病毒代码2“virus.asm”复制到此目录下。
4、执行“”观察结果。
5、编译并连接“virus.asm”生成“virus.exe”,执行此exe文件以感染“”文件并且自动删除del.txt,而后执行“”可以发现感染后的结果。
三、实验环境MS-DOS 7.10MASM611四. 实验步骤与结果1、安装软盘和光盘镜像文件软盘:病毒代码_软盘.IMA光盘:MASM611S.ISO2. 在C:盘根目录下建立shiyan2目录,将软盘上的内容copy到该目录下。
3、.安装汇编编译环境运行光盘上的安装程序setup, 将汇编编译环境安装到C:\masm611目录下。
设置路径path=%path%;c:\masm611\bin;c:\masm611\binr。
因为是拷贝来的,文件大小与文件一样。
创建del.txt文件。
在C:shiyan2目录下编译、连接生成病毒程序virus.exe。
感染病毒。
虚拟机死机。
Reset重启虚拟机。
发现已被严重感染。
且感染后变得过大,无法读出其中内容。
而且del.txt文件已被删除。
五. 病毒代码分析仔细分析病毒代码virus.asm, 结合实验完成以下内容:i. 传染模块主要代码及传染过程说明;pop si ;得到当前地址IP->SImov bp,si ;保存当前地址push simov ah,9 ;(DS:DX)=指向字符串首址(字符串以"$"结尾)。
ASM设备中文资料文档
ASM设备中文资料文档ASM设备中文资料ASM Teach流程一.设定及教读L/F二.设定及教读Mag.三.调整各部位的M/C data四.教读L/F Index五.教读Index PR六.教读Aligment七.Teach 1st PR及1st Backup PR八.Teach wire九.Teach Local lead (VLL)十.换针及金线十一.执行contact search 及reference parameter十二.执行Bond center十三.check各项参数( Bond、Base、Loop、Light、auto、funtion )十四.储存Date设定L/F Type data:一. 6 W/H Menu ?二. 0 W/H Setup ?三. 0 Change Device ?此项用以设定L/F的参数。
0 Device Name 可用以设定L/F的名称,机台最多支持8个字符的名称。
1 Number Scale 机台支持两种型态的单位表示:mil及mCM,其中mCM表示CM/10002 Number Of Unit 表示每条导线架上有多少个units。
3 Device Width 表示L/F的宽度。
4 Device Pitch 两个Device间的距离。
5 Rad to index hole 索引孔的半径。
6 Center Index hole 询问索引孔是否在两个Die Pad的中央位置。
7 Rail edge to index hole 表L/F边缘至索引端的距离。
L/F WIDTH教读一. 6 W/H MANU ?二. 0 W/H SETUP ?三. 2 LEARNING LF PARA ?四. 0 LEARN LF WIDTH ?步骤: 1.当进入时流道会做一次原点归值动作, 再回到原来未调整前宽度。
2.此时使用上、下键即可调整流道宽度。
3.完成调整后, 按STOP键跳出, 此时画面会SHOW出是否要UPDATE , 选择YES即OK。
汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)
第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。
3.掌握汇编语言的编辑、汇编及连接的过程。
4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。
二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。
2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。
3.运用LINK.EXE文件进行连接,形成*.EXE文件。
4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。
5.运用DEBUG。
EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。
6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。
程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。
汇编语言实验2报告
汇编语言程序设计实验
2.实验过程
一.实验目的与要求1.学习并掌握汇编语言程 Nhomakorabea的基本设计
2.编程掌握汇编语言编程的顺序结构,选择结构,循环结构
二.实验设备
微型计算机
三.实验内容
1.编程实现9+8-7运算,把结果存在存储单元中。用debug查看程序的运行结果,检查程序运行结果的正确性,源程序命名为1.asm。(可使用masm5.0也可使用集成汇编环境)(如使用masm5.0需要将1.asm放入到masm5.0文件夹下,接下来进行汇编和链接,如果使用集成开发环境需要将源文件1.asm和生成的1.obj和1.exe存放到以班级学号姓名命名的文件夹下)
可使用masm50也可使用集成汇编环境如使用masm50需要将1asm放入到masm50文件夹下接下来进行汇编和链接如果使用集成开发环境需要将源文件1asm和生成的1obj和1exe存放到以班级学号姓名命名的文件夹下源程序及注释如下
实验报告
系别
班级
学号
姓名
时间
地点
机电系
课程名称
微机原理及接口技术
实验名称
源程序及注释如下:
debug查看结果如下:
2.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来,源程序命名为2.asm。(提示:输入和显示调用dos功能实现,要求使用文件夹中的集成汇编环境,源文件及生成文件存放到以班级学号姓名命名的文件夹下)
源代码及注释如下:
键盘输入小写字母并用大写字母显示截图如下:
3.试编写一个汇编语言程序求1+2+3+……..+10,并在屏幕上显示最终的和值,源程序命名为3.asm。(提示:显示调用dos功能实现,要求使用文件夹中的集成汇编环境,源文件及生成文件存放到以班级学号姓名命名的文件夹下)
ASM2
5. 控制寄存器
31
保留,缺省为全0
31
12 11
页目录基地址寄存器
76
MC E
5 4 32 1 0
0 PSE DE TSD PVI VM CR4 E
43
0
PCD PWT
CR3
31
31
31 30 29 PG CD N
W
页故障线性地址寄存器
保留
18 17 16 AM WP
0 CR2
0 CR1
第二章 80x86计算机组织结构
主要内容:
80x86CPU结构 80x86存储器组织 80x86CPU的工作模式
2.1 8086CPU结构
一、概述 1.指令的一般执行过程:
取指令→指令译码→读取操作数 →执行指令→存放结果
开始 程序 结束
存储器中存储一系列指令
指令1 指令2 指令3
指令n
放暂时不用或需要保护的数据 常用于响应中断或子程序调用
(SS)=段基址 (SP)=栈顶偏移地址
SP又称为栈顶指针!
堆栈段示意图:
概念:
栈首
栈首:最低地址处
栈顶:当前入栈的
位置
栈底:最高地址处 64KB
栈顶
栈底
(SS):(SP) 低地址 (SS):(0000) (SS):(0001)
(SS):(SP)
ES
某操作数偏移地址=0204H 8FF00H
SS
画出各段在内存中的分布、
段首地址及操作数的物理地址
例题解答:
设操作数在数据段,则操作数的物 理地址为:
250AH ×16+0204H = 252A4H
存放运算结果的特征 只用到其中的9位:
出错信息(川大微机原理实验资料和内容以及MASM使用方法)
出错信息在使用MASM5.0对源程序进行汇编时,对于有错误的或可置疑的语句,MASM将显示出相关出错或警告信息。
出错信息分为两类:一类是带编号的出错代码信息。
这些错误或警告与源程序中的某一个语句(或指令)行代码有关,并赋以相应的编码。
在显示出错代码的同时,还给出了简要的注释。
另一类出错信息没有编号,他们是针对整个汇编程序的,而不是针对某一语句行的,因而,只给出了简要的注释。
一、带编号的错误带有编号的错误信息的显示格式如下:sourcefile (line):code messagesourcefile是出错的源程序文件名。
如果定义于INCLUDE文件中的宏有错,则源程序文件名是指引用宏并对其进行展开的那一个程序文件名。
line是MASM无法进行汇编的那条语句源程序中的行号。
Code是以Microsoft 语言程序格式指定的代码。
它以error或warning开始,后跟5个字符的代码。
第一个字符表示编程语言,汇编语言是字符A;第二个代码是数字符,表示警告级别;2表示严重错误(Severe Errors);4表示严重警告(Severe Warnings);5表示建议警告(Advisory Warnings);最后三个数字是错误编号。
message是对该错误或警告的简要说明。
比如:test.ASM(33):error A006:Phase error between passes上述信息表明,在源程序test.ASM的33行中,有006号严重错误。
下面,将按照编号列出错误信息,并给与简要的解释。
错误代码错误描述0Block nesting error块嵌套错误。
指嵌套的过程、段、结构、宏或非正常结束。
例如在某嵌套语句序列中,有外层的结束语句,而无内层的结束语句,所造成的嵌套错误。
1 Extra characters on line在一语句行中有多余的字幅。
指在一行中除了已有该汇编语句的全部信息外,还有多余的字幅。
汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)
第一部分汇编语言程序设计实验一熟悉、使用DEBUG调试工具一.上机目的:1.了解并逐步熟悉汇编语言的编辑方法及特点.2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。
3.掌握汇编语言的编辑、汇编及连接的过程。
4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。
二.实验内容:1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。
2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。
3.运用LINK.EXE文件进行连接,形成*.EXE文件。
4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。
5.运用DEBUG。
EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。
6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。
程序清单:多字节非压缩型BCD数除法(88754/6=14792)DA TA SEGMENTA DB 8,8,7,5,4B DB 6C DB 5DUP (0)N EQU 5DA TA ENDSCODE SEGMENTASSUME CS:CODE;DS:DATA;ES:DATA,START MOV AX,DA TAMOV DS,AXMOV ES,AXCLDLEA SI,ALEB DI,CMOV CX,NMOV AH,0LP1:LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2:MOV DL,[DI]MOV AH,2INT 21HDEC DILOOP LP2MOV AH,4CHINT 21HCODE: ENDSEND START实验二设计汇编语言程序一.8088提供了一套字符串处理指令,这些指令的特点是:在使用前必须先在指定的寄存器中存入源字符串和目的字符串的首地址及相关字符数,在处理过程中还可以使用REP重复操作前缀。
微机第二次实验报告
3.5.4 实验参考程序;T8259-1.asm;8259中断查询方式应用实验IOY0 EQU 3000H ;片选IOY0对应的端口始地址MY8259_ICW1 EQU IOY0+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU IOY0+04H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU IOY0+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;实验系统中8259的OCW3端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4OUT DX,ALMOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2MOV AL,08HOUT DX,ALMOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4MOV AL,01H ;非自动结束EOIOUT DX,ALMOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1MOV AL,0FCH ;打开IR0和IR1的屏蔽位OUT DX,ALQUERY: MOV AH,1 ;判断是否有按键按下INT 16HJNZ QUIT ;有按键则退出MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令MOV AL,0CHOUT DX,ALIN AL,DX ;读出查询字TEST AL,80H ;判断中断是否已响应JZ QUERY ;没有响应则继续查询AND AL,03HCMP AL,00HJE IR0ISR ;若为IR0请求,跳到IR0处理程序JNE IR1ISR ;若为IR1请求,跳到IR1处理程序JMP QUERYIR0ISR:MOV AL,30H ;IR0处理,显示字符0MOV AH,0EHINT 10HMOV AL,20HINT 10HJMP EOIIR1ISR:MOV AL,31H ;IR1处理,显示字符1MOV AH,0EHINT 10HMOV AL,20HINT 10HEOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令MOV AL,20HOUT DX,ALJMP QUERYQUIT: MOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START3.5.5 实验现象和分析3.5.6 实验心得。
汇编语言实验2
汇编语⾔实验2汇编语⾔程序设计实验⼆MASM 汇编器使⽤学号:姓名:1.使⽤MASM为DOS和Windows编程:a)DOS中运⾏的程序:先输⼊程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude \masm32\include\masm32.incincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\masm32.lib.dataHelloWorld db "Hello World!", 0.codestart:invoke StdOut, addr HelloWorldinvoke ExitProcess, 0end start再打开DOS命令提⽰符界⾯,输⼊“\masm32\bin\ml /c /Zd /coff hello.asm”在没错误情况下,可以连接⽂件,输⼊“\masm32\bin\Link /SUBSYSTEM:CONSOLE hello.obj“,在⼯作⽬录中会产⽣可运⾏⽂件Hello.exe,运⾏并记录运⾏结果。
b)Windows 中运⾏的程序:先修改程序,.386.model flat, stdcalloption casemap :noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incinclude \masm32\include\user32.incincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\user32.lib.dataHelloWorld db "Hello World!", 0.codestart:invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OKinvoke ExitProcess, 0end start⽤命令“\masm32\bin\ml /c /Zd /coff hellow.asm”编译程序,再⽤命令“\masm32\bin\Link /SUBSYSTEM:WINDOWS hellow.obj”连接程序,运⾏并记录运⾏结果。
实验二 ARM汇编器ARMASM实验
实验二:ARM汇编器ARMASM实验指导教师:覃志东一实验目的●掌握ARM汇编语言程序的基本组织结构●掌握ARMASM的命令行格式使用方法二实验内容本次实验要求学生配置好实验环境;然后使用ADS 的命令行汇编器armasm汇编一个汇编语言源程序,并连接、执行、调试。
需要学生查看相关的帮助文档,并完成实验报告的撰写。
三实验设备及工具●硬件:本次实验不用开发箱。
●软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境。
四基础知识请大家先阅读,了解汇编器。
五实验过程1认识命令行格式的汇编器(1)、进入dos命令行。
进入到ADS1.2的bin目录。
如图1-3.图1 进入DOS图2 进入ADS(可以观测其目录结构)图3 进入bin目录(可以观测其中有很多的工具)(2)、在bin>下输入:armasm –help,查看armasm的帮助。
如图4,5。
图4 armasm的帮助图5 armasm的帮助2对汇编源程序进行汇编(1)、把实验用的arm汇编源程序strcopy.s拷贝到bin>目录。
待编译的汇编图6 确定路径(2)然后在命令窗口键入:armasm –g strcopy.s并回车。
如图7所示。
想想该命令是什么意思?然后可以在bin目录下看见生成的对象文件。
图7 进行汇编汇编生成的对象文件图8 汇编生成3连接在命令行bin>下键入armlink strcopy.o –o strcopy.axf并回车,如图9所示。
具体步骤如下:图9 连接4调试执行(1)在命令行bin>下键入:armsd strcopy.axf并回车,如图11所示。
这就用命令行调试器加载了可执行文件。
(2)在armsd命令提示符下键入go.程序就执行,如图12所示。
图11 执行(2)推出arm符号调试器armsd。
可以在armsd:下键入quit。
如图12所示。
图12 退出六实验报告请阅读ADS1.2在线帮组文档,了解armsd的使用方法,完成本实验程序的调试。
中南大学汇编语言实验二
实验2实验学时: 2 实验地点:二综实验日期:一、实验目的掌握汇编编程规范,熟悉编程环境。
二、实验内容DA TAS SEGMENTdb "welcome to masm"DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXmov ax,0b800hmov es,axmov bx,7b4hmov si,0mov cx,7s0: ;显示welcomemov al,ds:[si]mov es:[bx],almov es:[bx+1],02hadd bx,2inc siloop s0add bx,2inc simov cx,2s1: ;显示tomov al,ds:[si]mov es:[bx],almov es:[bx+1],24hadd bx,2inc siloop s1add bx,2inc simov cx,4s2: ;显示masmmov al,ds:[si]mov es:[bx],almov es:[bx+1],71hadd bx,2inc siloop s2s: ;为了显示,我这边做个死循环jmp short sMOV Ax,4CH ;这边去掉我所谓INT 21HCODES ENDSEND START编程:参考教材实验9,在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcome to masm’。
三、实验步骤算法及关键代码DA TAS SEGMENTdb "welcome to masm"DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXmov ax,0b800hmov es,axmov bx,7b4hmov si,0mov cx,7s0: ;显示welcomemov al,ds:[si]mov es:[bx],almov es:[bx+1],02hadd bx,2inc siloop s0add bx,2inc simov cx,2s1: ;显示tomov al,ds:[si]mov es:[bx],almov es:[bx+1],24hadd bx,2inc siloop s1add bx,2inc simov cx,4s2: ;显示masmmov al,ds:[si]mov es:[bx],almov es:[bx+1],71hadd bx,2inc siloop s2s: ;为了显示,我这边做个死循环jmp short sMOV Ax,4CH ;这边去掉我所谓INT 21HCODES ENDSEND START四、实验小结(简单说明实验过程中出现的问题和解决方法)。
微机实验
微机上机实验操作指南1、进入子目录MASM⑴、C:\>CD MASM 进入子目录MASM。
⑵、C:\MASM>DIR 查阅MASM.EXE和LINK.EXE文件是否存在。
2、编辑源文件用EDIT全屏幕编辑软件编辑你的汇编语言程序源文件。
注意:存盘时汇编语言源文件格式为:文件名.ASM3、编译源文件用MASM编译软件编译你的汇编语言源程序,生成.OBJ文件。
命令格式:MASM 文件名;若有错,再进入EDIT修改你的源文件,然后再编译,没错则进入下一步。
4、连接.OBJ文件用LINK连接软件连接你的.OBJ文件,生成.EXE文件。
命令格式:LINK 文件名;5、调试.EXE 文件用DEBUG调试软件调试你的.EXE文件。
命令格式:DEBUG 文件名.EXE出现提示符“-”后,可键入U、T、P、G、R、D、E、Q等常用调试命令。
6、常用DEBUG命令⑴、U (n) 反汇编命令从地址偏移量n开始,将.EXE文件返汇编成源文件,n省略时,从当前地址开始。
注意:只反汇编可执行语句,不可执行的数据段和堆栈段不能反汇编。
⑵、T、P 单步运行命令只执行当前一条指令,用T或P,若运行n条指令,可用Tn或Pn.注意:T和P的区别:对于中断调用INT n和CALL过程调用,T命令可进入其内部,P命令则⑶、G=地址1,地址2 连续运行命令从地址1语句开始执行到地址2语句结束。
(地址2所在语句不执行)⑷、R(寄存器)寄存器查看、修改命令键入R 回车,显示所有寄存器当前状态值。
键入R 寄存器(例:R AX) 回车,可修改寄存器的内容。
先显示寄存器的内用,然后可键入数据。
⑸、D DS:n 显示数据段命令从偏移地址为n开始显示,注意:必须在程序执行完将数据段的地址赋值给DS的语句后才能用此命令查看你的数据段,也可用D SS:n查看堆栈段。
⑹、E DS:n 修改数据段内存数据命令修改数据段内存中地址偏移量为n的单元的内容。
汇编语言实验2
思考与练习
1.数据的寻址方式在debug方式下有哪几个是可以直接使用的?
2.BX和BP都是基址寄存器,使用时有区别吗?如果有,是什么?
老师评价
指导老师签名:
(3)使用debug调试掌握数据的寻址方式。
实验任务
1.请进入debug中,将数据段寄存器设置为2000H,并将使用的命令及查看的结果写出来。
实验步骤
2.请使用MOV命令和要求的寻址方式将下列的存储单元或寄存器写入对的数据。请将使用的命令和执行的结果显示在下方。
(1)将数据ABCDH写入AX寄存器,采用立即寻址方式。
(2)将寄存器AX中的数据送入到BX寄存器中,采用寄存器寻址方式。
(3)将数据789AH存入20100H存储单元,使用寄存器间接寻址方式。
(4)将数据1378H存入20102H存储单元,使用寄存器相对寻址方式。
(5)将数据9867H存入20104H存储单元,使用基址变址寻址方式。
(6)将数据7F10H存入20106H存储单元,使用相对基址变址寻址方式。
实验二《指令寻址方式的使用》实验报告
实验名称
指令寻址方式的使用
实验
时间
年月日
节课
实验
时数
2
实验学生
指导教师
实验场地
实验准备
(1)操作系统: Windows 2000 /windowsxp
(2)汇编软件:MASM
实验目的
(1)了解汇编语言调试程序使用的基本过程。
(2)掌握使用debug命令中常用的命令。
微机原理及接口技术实验指导书(第二版)
微型计算机原理及接口技术实验指导书郭亚莎编成都理工大学通信工程系2012年10月实验一汇编语言程序设计的基本要求与方法一、实验目的学习汇编语言程序设计的基本方法和技能,初步掌握用汇编语言设计、编写调试和运行的方法,为后续课程的学习建立良好的基础。
二、实验要求课前认真复习教材第4章汇编语言程序设计章节的内容,熟悉与实验有关的(文本)编辑程序、汇编程序、连接程序和动态调试程序等系统软件的使用方法。
三、实验方法实验可以采用以下两种方式进行。
方式一1.实验所需软件环境在Windows操作系统下,利用其提供的虚拟86系统功能进行实验。
将上实验课教师提供的宏汇编程序masm.exe和连接程序link.exe以及动态调试程序debug.exe复制到作实验学生自己的文件夹里。
2.建立源程序建立汇编语言源程序可以使用任何以ASCII码格式产生文本文件的编辑程序,所编辑的文件不能有任何控制码,如加底线、对齐、上下标、粗体字符等。
这样的编辑程序有EDlIN行编辑程序,WPS、PE2、EDIT、WORD全屏幕编辑程序等。
有关这类编辑程序的详细使用方法可参考有关操作手册。
这里仅以利用WORD建立文件名为example.asm的源程序为例简单说明汇编语言源程序的建立过程。
(1)打开WORD;图1(2)在WORD中输入源程序、编辑源程序等;图2(3)按纯文本格式保存源程序,注意example文件的扩展名为txt;步骤如下:点击保存——点击保存类型(T)三角形按钮,选纯文本(*.txt)——点击保存图3——出现下面的图栏,选MS-DOS——点击确定图4(4)关闭WORD;(5)在DOS窗口下将源程序example.txt的扩展名修改为example.asm。
(假设example.txt存放在D盘SHIYAN文件夹里)步骤如下:点击开始——点击运行(R)——在打开(O)栏里键入cmd,然后点击确定,随后出现DOS 窗口图5——(进入example.txt文件所在的驱动盘)在C:\Document and Settings\Administrator>键入d: 并回车——在D:〉后键入cd shiyan并回车(进入example.txt所在的(文件夹)目录)——在D:\shiyan >后键入rename example.txt example.asm 并回车。
活性污泥模型ASM2的简化及优化控制策略研究
活性污泥模型ASM2的简化及优化控制策略研究活性污泥模型ASM2 (Activated Sludge Model 2) 是广泛应用于城市污水处理厂中的一个生物反应器模型。
由于其良好的预测性能和稳定性,在国内外得到了广泛的应用和研究。
本文将从模型简化及优化控制策略两个方面,对ASM2模型进行探讨。
一、模型简化ASM2模型是一个十分复杂的模型,其包含了很多的反应过程和细节,导致计算量十分庞大,同时实际应用价值受到限制。
因此,ASM2模型的简化是必要的。
1.1 基于模型力学的简化方法基于模型力学,可以对模型中的一些重要反应过程进行简化,并对特定的操作条件进行优化。
例如,在模型中加入一些活性菌群以促进有机物的分解,或者采用一些较大的处理设备来提高污水处理的效率,这些方法都可以通过对ASM2模型进行简化来实现。
1.2 结合实验和仿真的简化方法结合实验和仿真,可以通过建立适当的实验条件和仿真程序来减小ASM2模型的复杂性。
一些基于实验和仿真的简化方法包括使用分级分区的处理系统,分批处理污水,在增益控制系统中使用动态拓扑重构技术等。
二、优化控制策略优化控制策略的目标是在最小的成本下,实现最大的污水处理效果。
通常情况下,优化控制策略应该结合实际的操作条件、管线限制、节能减排要求等多方面的因素来进行设计。
2.1 基于模型预测的控制策略基于模型预测的控制策略,可以通过对ASM2模型进行预测和模拟来进行控制。
例如,可以根据情况预测未来的有机负荷浓度,并根据预测结果来调整反应器的操作条件,从而使得处理效果更为优越。
2.2 结合数据挖掘的控制策略数据挖掘技术能够从大量实际数据中提取信息,可以结合ASM2模型来进行优化控制。
例如,将反应器中的数据进行处理并结合ASM2模型,通过数据挖掘技术提取处理效果的关键参数,并利用这些参数来制定优化控制策略。
2.3 基于直觉的控制策略在ASM2模型的基础上,可以采用一些基于直觉的控制策略进行优化。
masm实验3 实验报告
(1)将下面程序保存为t1.asm,生成可执行文件t1.exe。
assume cs:codesgcodesg segmentmov ax,2000Hmov ss,axmov sp,0add sp,10pop axpop bxpush axpush bxpop axpop bxmov ax,4c00Hint 21Hcodesg endsend(2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶内容。
step 0:通过debug t1.exe加载程序后:ax=0000H;bx=0000H;cx=0016H(表示程序长度,为22个字节);ds=13D5H(表示操作系统给t1.exe分配的空闲区域的段地址);cs=13e5H(=ds+10H,与之前描述一致);ss=13e5H,sp=0000H;通过d 13e5:0 1命令查看栈顶内容,为00b8H;step1:单步执行第一条指令后:ax=2000H;bx=0000H;其余cx,ds,cs,ss,sp均不变;此时栈顶内容理应不变,查看依旧为00b8H;step2:单步执行第二条指令后,自动连带执行第三条指令:ax=2000H;bx=0000H;其余cx,ds,cs均不变;ss和sp被重置,栈顶指向:2000:0,查看栈顶内容,为:0ff1H;step3:单步执行第四条指令后:ax=2000H;bx=0000H;其余cx,ds,cs,ss均不变;sp被重置,栈顶指向:2000:0a,查看栈顶内容,为:615fH;step4:单步执行第五条指令后:ax=615fH(与上一步所得一致);bx=0000H;其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0c,查看栈顶内容,为:0DF0H;----------因重新debug,导致前后ax不一致-----------step5:单步执行第六条指令后:ax=13e5H;bx=0DF0H(与上一步所得一致);其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;step6:单步执行第七条指令后:ax=13e5H;bx=0DF0H;其余cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H (与AX一致);step7:单步执行第八条指令后:ax,bx,cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0A,查看栈顶内容,为:0DF0H (与BX一致);step8:单步执行第九条指令后:ax=0DF0H(与上步查看一致);bx,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H;step9:单步执行第十条指令后:bx=13E5H(与上步查看一致);ax,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;(3)PSP头两个字节为CD 20,用debug加载t1.exe.查看PSP内容:PSP区域地址范围为:ds:0~ds:ff.分类: 汇编语言。
实验二MASM、LINK指令的使用实验
实验二MASM、LINK指令的使用、实验目的1. 熟练掌握文本编辑器的基本用法。
2. 熟悉汇编语言的编辑、汇编、连接、运行的全过程。
3. 熟悉Debug调试程序的常用命令和用法。
、实验要求1. 编辑一个扩展文件名为ASM的汇编语言源程序。
2. 用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件。
(扩展名为OBJ3•用连接程序LINK连接目标代码文件,形成可执行文件。
(扩展名为EXE4 •运行可执行文件。
观察执行结果,以验证其正确性。
三、实验任务1. 在文本编辑器(如:记事本程序)中先输入下列汇编语言源程序(注意:文件类型是.ASM文件),使用MASM程序和LINK程序对汇编语言源程序进行汇编和链接,用“debug 可执行文件名”命令,将生成的可执行文件装入内存,然后逐条执行指令,观察执行过程和结果。
练习程序段(实现ZZZ=XXX*16+YYY )如下:DSEG SEGMENTXXX DW 1234HYYY DW 5678HZZZ DD ?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV AX,XXXXOR DX,DXADD AX,AXADC DX,DXADD AX,AXADC DX,DXADD AX,AXADC DX,DXADD AX,AXADC DX,DXADD AX,YYYADC DX,0MOV WORD PTR ZZ Z,AXMOV WORD PTR ZZZ+2QXMOV AH,4CHINT 21HCSEG ENDSEND START四、实验步骤1. 任选熟悉的编辑环境,输入示例程序,存盘取名为EX1.ASM操作步骤如下:在Windows环境下可以使用“ EDIT ”和“记事本”来对汇编语言源程序进行编辑。
①用EDIT编辑汇编语言源程序用鼠标单击“开始”菜单,指向“运行” ,在对话框中输入“ COMMAND ”或“CMD”,单击“确定”。
RedASM编译器的使用实验报告
实验报告(一)实验名称:RedASM编译器的使用专业:电子信息科学与技术学号:姓名:一、实验目的1.熟练掌握RedASM软件的使用方法。
2. 熟练掌握RedASM调试汇编程序的方法。
3. 掌握简单汇编程序的设计方法。
二、实验原理参考《RedASM编译器的使用简介》。
三、实验设备与器件PC机一台以及RedASM软件。
四、实验内容1.按照《RedASM编译器的使用简介》,完成简介材料中的所有内容。
2.参照《RedASM编译器的使用简介》,编写程序计算X/Y的值,并将商放置在变量Y1中,余数放在变量Y2中。
规定X,Y均是8位二进制数形式的变量。
(注意:实验结果不能直接显示在屏幕上,必须通过参看内存状态才能看到结果。
)源程序data segmentx db 10y db 3y1 db ?y2 db ?data endssseg segment stackdata1 db 100 dup(?)sseg endscode segment 'code'assume cs:code,ds:data,ss:ssegstart:;下面是汇编语句编辑部分mov ax,datamov ds,axmov al,xcbwidiv byte ptr ymov y1,almov y2,ahexit: mov ah,4chint 21hcode endsend start运行结果展示:五、实验总结(实验报告要求)此次实验让我熟悉了RedASM软件的应用,从中也发现了许多的不足。
例如:对RedASM编译器的使用不是十分熟悉,应用起来不是很熟练。
在使用的过程中也出现了一些问题,刚开始的时候将程序写进去,在构建或在调试中运行时总会被反映无法找到该文件,导致程序无法运行,但发现程序是没有任何问题的。
结果我将电脑系统还原,卸载原来的软件,重新安装该软件,却发现可以用了。
我想,可能是第一次安装的时候发生了错误?但我记得两次安装的步骤完全一样,没有什么差别,这到底是什么原因导致的,现在我还是不太明白。
编译一个扩展文件名为ASM的汇编语言源程序
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: hello.asm
心得体会
在编译过程中,主要注意,下载文件时,放在正确的位置,输入代码时,要细心,细小的错误都有可能打不开文件,过程稍有问题,但及时改进,下次努力。
成绩
教师(签署)
实验报告
课程名称:微机原理与接口技术
实验名称:汇Байду номын сангаас编译工具MASM6.11的使用
专业:网络工程
学号:
姓名:
实验地点:九章楼N6-202
实验日期:2017.2.22
常熟理工学院
项
目
内
容
编译一个扩展文件名为ASM的汇编语言源程序
用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件
用连接程序LINK或TLINK连接目标代码文件,形成可执行文件
Run File [hello.exe]:
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.
用LINK将OBJ文件连接成可执行的EXE文件
在DOS状态下运行LINK产生的EXE文件。用DEBUG检查程序.
程序
及
注
释
data1 segment
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 实验目的
熟练掌握使用 Debug,练习使用汇编指令。
2. 实验内容和要求
某数据段内有如下数据定义: X db 30, 30H, ‘ABC’, 2-3, ?, 11001010B
dw 0FFH, -2, “CD”
Y dd 20 dup(15, 3 dup(?), 0)
2. 实验内容
设 X,Y 都是字节型变量,编写计算下面函数值的程序
⎧1 X >0
Y
=
⎪ ⎨
0
X =0
⎪⎩−1 X < 0
3. 要求
预习第 7 章“程序逻辑与控制”的部分内容;
根据题目要求完成程序。将程序汇编连接成 .exe 文件。分别在 DEBUG 环境下, 和 EMU8086 环境下调试,观察运行过程。
.MODEL SMALL .DATA
…… .CODE MAIN PROC FAR …… …… ; MOV AX, 4C00H INT 21H MAIN ENDP END MAIN
实验 2-2. 顺序程序设计
1. 实验目的
建立汇编语言程序,进行汇编和连接,理解和掌握顺序程序设计。
2. 实验内容
查表求平方值。在内存中按从小到大存放了 0-9 的平方值表,要查的值保存在变量 x 中,查得的结果保存在变量 y 中。
3. 要求
以下给出部分代码,根据题目要求补充完整。将程序汇编连接成 .exe 文件。分别 在 DEBUG 环境下,和 EMU8086 环境下调试,观察运行过程。
ARR[2] - ARR[3] Æ X[2]
ARR[3] - ARR[4] Æ X[3] 以下给出部分代码,根据题目要求补充完整。将程序汇编连接成 .exe 文件。分别 在 DEBUG 环境下,和 EMU8086 环境下调试,观察运行过程,记录 OF,CF,SF, ZF,AF 的值,理解原理。
.MODEL SMALL .DATA ARR DB 56H, 0AAH, 86H, 07H, 10H X DB 4 DUP(?) .CODE MAIN PROC FAR
INT 21H
MAIN ENDP
END MAIN
பைடு நூலகம்
实验 2-3. 标志寄存器
1. 实验目的
建立汇编语言程序,进行汇编和连接,观察指定标志位的值,理解原理。
2. 实验内容
ARR 是连续的若干个值,已赋值;X 用于保存计算结果。
3. 要求
要求: ARR[0] + ARR[1] Æ X[0]
ARR[1] + ARR[2] Æ X[1]
MOV BX, ARR MOV CX, 0AH LP:
MOV AX, 0 ADD AX, [BX] JNZ LA INC CNT LA: INC BX LOOP LP ; MOV AX, 4C00 INT 21H MAINP ENDP END MAINP
实验 2-5. 分支程序设计
1. 实验目的
建立汇编语言程序,进行汇编和连接,理解和掌握分支程序设计。
.MODEL SMALL .DATA TAB DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 x DB 2 y DB ? .CODE
MAIN PROC FAR
MOV AX, @DATA
MOV DS, AX
; 将 data 段的段地址送 DS
……
……
;
MOV AX, 4C00H
…
MOV AX, 4C00H INT 21H MAIN ENDP END MAIN
实验 2-4. 程序改错
1. 实验内容
以下程序用于统计数据区中 0 的个数,但有些错误,请改正,且编程调式。 .DATA ARR DB 12H, 32H, 0AH, 0, 0, 90, 0, 128, 0, 9 CNT DB 0 .CODE MAINP PROC FAR
Z db 3 dup(?)
W dw Z-X
STR DB ‘A Sample for addressing.’ (1)以汇编程序定义上述数据,且将数据段的地址传送给 DS 寄存器; (2) 以一列表格的形式写出变量 X 前 6 个字节数据在内存中的具体位置和相关内 存单元的值。 (3)写出变量 Y,Z 的地址与 X 之间的偏移量。 (4)写出变量 W 的值 (5)以适当的指令把字符串 STR 的第 5,12 个字符(注:第 0 个字符是’A’) 送入 BX 寄存器。