汇编实验报告

合集下载

汇编语言实验报告

汇编语言实验报告

汇编语⾔实验报告福建农林⼤学⾦⼭学院(程序设计类课程)实验报告课程名称:汇编语⾔姓名:系:专业:年级:学号:指导教师:职称:2010~2011学年第⼆学期实验项⽬列表福建农林⼤学⾦⼭学院实验报告系:专业:年级:姓名:学号:实验课程:汇编语⾔实验室号:_ _1#605 实验设备号: I3 实验时间: 2011.4.25 指导教师签字:成绩:实验⼀汇编程序的汇编及运⾏1.实验⽬的和要求(1)熟悉汇编程序的汇编、连接、执⾏过程;(2)⽣成LST⽂件,查看LST⽂件;(3)⽣成OBJ⽂件,修改语法错误;(4)⽣成EXE⽂件;(5)执⾏程序。

2.实验环境IBM—PC机及其兼容机;实验的软件环境是:操作系统:DOS 2.0以上;调试程序:/doc/aa5b4424a5e9856a56126062.html ;⽂本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引⽤程序:CREF.EXE(可有可⽆)。

3.实验内容及实验数据记录(1)将数据段输⼊,取名1.txt,保存在MASM⽂件夹下。

⽣成LST⽂件,(不必连接、运⾏)⽤EDIT查看1.LST⽂件。

试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND(2)输⼊有错误的⽂件,修改错误语句。

(MASM没有出现错误即可。

不必连接、运⾏。

)DATA SEGMENTVAR1 DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ’ABCDEF’VAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATABEING MOV AX, DATAMOV DS, AXLEA SI, VAR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, VAR1+2MOV [BX], [SI]MOV VAR5+4, VAR4MOV AH, 4CHINT 21HCODE ENDSEND START(3)输⼊正确的程序,汇编、连接、运⾏STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DATASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤1) ⾸先,⽤记事本输⼊各段程序,并储存成源程序,保存在MASM⽬录下。

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。

2、熟悉DEBUG程序的使用方法。

3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。

二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。

2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。

三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。

2、预习DEBUG调试程序的使用方法。

3、根据实验内容要求,编写好实验源程序。

四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。

2、汇编、连接源程序,产生.EXE可执行文件。

3、运行程序。

(1) 进入DEBUG。

打入DEBUGT MYPROG.EXE。

MYPROG为所编程序的文件名。

(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。

如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。

(3) 检查程序。

在程序中设置若干断点,以便杳出错误所在。

(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。

五、实验报告要求1、列出程序清单,并给出程序流程图。

2、总结实现数据传送的几种方法,指出它们的区别。

开始3、分析实验中所遇到的一些问题,分析错误原因。

4、说明本实验中是如何使用DEBUG进行调试的。

CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验实验三字符串操作实验一、实验目的1)熟悉串操作指令的功能与应用;2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序;3)了解汇编语言字符串处理基本流程;二、实验软硬件环境1)硬件环境:惠普64位一体化计算机及局域网; 2)软件环境:windows 8,红蜘蛛管理系统,MASM for Win dows三、实验相关知识1)字符串操作流程SI寄存器保存源串首地址;DI寄存器保存目的串首地址;CX寄存器保存字符串长度;CLD或STD指令设置字符串处理方向;2)重复前缀指令重复次数由计数寄存器CX中存放的值决定,指令每重复执行一次,计数器CX中值减1,当CX 中值减至0时,停止重复执行,继续执行下一条指令。

寄存器的E内容条件为复前罡重复与操作直配合工作的字符串处理指令有MOVSSTOS^ LODS当REPE/REP判断计数寄存器的内容CX是否为0或ZF=O(即比较的两个操作数不等)亠只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMP和SCAS0或體茴比较P判个操数数相等的内容要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMPS口SCAS3)字符串操作指令lodsb、lodsw :把DS:SI 指向的存储单元中的数据装入AL或AX然后根据DF标志增减SI ;stosb、stosw :把AL 或AX 中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI ;movsb movsw把DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF 标志分别增减SI和DI ;scasb、scasw:把AL或AX中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;cmpsb cmpsw把DS:SI指向的存储单元中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;rep :重复其后的串操作指令。

高中生物实验报告(必修1)汇编

高中生物实验报告(必修1)汇编

物像大小细胞数目
高中生物实验报告(二)
班级:学号:姓名:时间:
实验题目:检测生物组织中的糖类、脂肪和蛋白质
1.观察叶绿体
藓类小叶
清水
一片藓类小叶
盖玻片
实验步骤

2.观察线粒体
取人的口腔上皮细胞为材料,载玻片中央滴一滴健那绿染液,
取口腔上皮细胞放入液滴中,盖上盖玻片,制成临时装片。

在低倍镜下找
到口腔上皮细胞,换上高倍镜观察。

高中生物实验报告(五)
高中生物实验报告(六)
班级:座号:姓名:
5.观察装片:先用低倍镜找到
细胞,后找前、后、末期细胞。

描述植物细胞有丝分裂各个时期的特点。

51单片机定时器计数器汇编实验报告

51单片机定时器计数器汇编实验报告

批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。

2、掌握定时器/计数器的原理及编程方法。

二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。

若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。

方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。

四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。

设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。

二进制表示为:00010101 10100000B。

十六进制为:高八位(15H),低八位(A0H)。

2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。

植物学实习报告模板汇编8篇(植物学实验报告总结)

植物学实习报告模板汇编8篇(植物学实验报告总结)

植物学实习报告模板汇编8篇(植物学实验报告总结)植物学实习报告篇120xx年7月13日,结束了泉州、厦门站的动物野外实习后,我们来到了南靖和溪,由孔祥海老师带队,开头了这次的植物野外实习。

一、实习目的与任务1.了解采集地植被分布状况和华南地区森林的基本结构,熟识部分北回归线植物及其生境,充分理解植物的分布与环境的相关性。

2.通过野外实习巩固理论学问,在实践中加深对理论学问的理解和记忆。

3.激发学习生物科学、探究大自然的热忱,通过形式多样的学习和老师同学之间的相互沟通,提高对植物学的兴趣。

二、实习步骤与内容7月13日下午,从实习宿舍(和溪镇热带雨林实习基地)动身,在孔老师的带领下,我们在和溪镇沿着大路熟识沿路植物并采集标本20余种。

7月14日下午,我们来到了乐土雨林.在孔老师等的带领下,沿路熟识了许多植物.并以小组为单位(五人一组)采集标本70余种。

同时压制了所采集的标本。

7月14日下午,校车再次把我们送到乐土雨林后便返回了。

我们在孔老师等的带领下沿路认种并采集标本50余种。

同时压制了所采集的标本。

7月15日上午,我们来到了仙岭,在孔老师等的带领下,沿山路认种并采集了30余种植物标本。

7月15日下午,我们在宿舍压制所采集的标本。

(并在晚饭后返回了学校)7月16日,回到了学校,我们在试验室忙着压制标本,挂标签,复习巩固。

7月17日上午,针对这次植物野外实习,以小组为单位孔祥海老师对我们进行了考核。

三、实习心得与体会这次在南靖和溪的实习使我获益良多。

最直接的学习成果就是对所采集的160多种植物的特征以及所属科目有所熟识。

到现在,我还记得种子会粘人衣服的鬼针草,属于百合科有着好听名字的吉利草,长了“瘤”的福建莲座蕨,有药用作用的积雪草,天南星科的名符其形的一把伞天南星,跟姜长得很相像的高粱姜……以前还没有认真地去观看学习的时候,一棵树就是一棵树,全部的叶子长得都差不多,全部的树皮都是一个样。

而在这次的观看中,我发觉每一株植物的叶子都长得那么有性格,有些气味特殊,有些叶脉惊奇,有些形状惊奇,有些毛茸茸有些光溜溜……就连貌不惊人的树皮也分长条形剥落还是片状剥落等等。

汇编综合性实验报告

汇编综合性实验报告

实验报告一、实验目的《汇编语言程序设计》是计算机专业的重要的专业基础课,通过本综合性、设计性实验使学生进一步巩固课堂所学,全面熟悉、掌握8088宏汇编语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。

二、实验要求用键盘选择计算机演奏乐曲,程序运行时首先在屏幕上显示出乐曲名单,当从键盘上输入乐曲的序号时,计算机则演奏所选择的乐曲,当键盘上按下Q键时,演奏结束。

三、实验原理分析(一)发音原理计算机有两种产生声音的方法,一种方法是通过I/O指令向设备寄存器(端口地址为61H)的第1位交替送1和0,使与第1位相连的扬声器脉冲门产生连续的脉冲电流,驱动扬声器发出声音。

另一种方法是利用8254(系统定时器)中的2号定时器向扬声器发送不同频率的脉冲,使之产生音调高低不同的声音,这种产生声音的方法可使计算机演奏出各种乐曲。

本程序选用定时器产生声音。

ROM BIOS中的BEEP子程序能根据BL中给出的时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒、频率为896HZ的声音。

通过对BEEP的修改,可以使其产生任一频率的声音。

用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。

组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音。

但GENSOUND程序产生的声音不仅与输入频率有关,而且与CPU有关。

如果80X86的工作频率为8MHZ(如IBM PS/ 2-25型),则T=125ns(1 /8MHz=125ns),那么上面程序产生的时间延迟就要短的多。

在80286中,LOOP指令只需8个执行周期,而不是17个执行周期,这也会使延迟时间缩短很多。

实验一汇编语言上机及Debug调试

实验一汇编语言上机及Debug调试

实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。

二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。

DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。

2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。

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

1 实验一 DOS常用命令及8088/86指令使用 实验目的 通过实验掌握下列知识: 1、DOS命令: CD,DIR,DEL,RENAME,COPY。 2、8088指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG 3、DEBUG命令: A,D,E,F,H,R,T,U。 4、BCD码,ASCII码及用十六进制数表示二进制码的方法。 5、8088寄存器: AX,BX,CX,DX,F,IP。 实验类型:验证 内容及步骤 一、DOS常用命令练习 1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DIR, 查看此目录下所有文件。 2、键入命令CD..进入上级目录,再查看此目录下所有文件。 3、将一张3.5寸软盘插到 A驱动器中,用DIR命令查看盘上文件。 4、用命令 COPY DEBUG.COM BUG 复制一个文件。 5、用命令 RENAME BUG BG 将BUG 文件改为BG。 6、用命令 DEL BG 将文件BG删除。 在操作时要注意提示信息,并按提示操作。 二、DEBUG 命令使用 1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。 2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。 3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E100 30 31 32 „„ 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码? 6、用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH 7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。 8、用R命令将AX,BX内容改写为1050H及23A8H。 三、8088常用指令练习 1、传送指令 用A命令在内存100H处键入下列内容: -A 0100↙ ****:0100 MOV AX,1234↙ ****:0103 MOV BX,5678↙ ****:0106 XCHG AX,BX↙ ****:0108 MOV AH,35↙ ****:010A MOV AL,48↙ ****:010D MOV DX,75AB↙ 2

****:010F XCHG AX,DX↙ ****:0111 ↙ - 注:****为段寄存器CS的值,是由计算机随机产生的;↙为回车操作。 用U命令检查键入的程序并记录,特别注意左边的机器码。 -U 0100↙ 用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 -T=0100↙ -T↙ -T↙ ┇ 2、加减法指令: 1)用A命令在内存100H处键入下列内容: MOV AH,34 MOV AL,22 ADD AL,AH SUB AL,78 MOV CX,1284 MOV DX,5678 ADD CX,DX SUB CX,AX SUB CX,CX 2)用U命令检查键入的程序及对应的机器码。 3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。 思考:这次运行还是键入T,行不行?怎么办?用R命令检查一下IP的内容。注意T命令与IP的关系。 3、带进位加减法: 1)用A命令在内存200H处键入下列内容,并用U命令检查: MOV AH,12 MOV AL,84 MOV CH,56 MOV CL,78 ADD AL,CL ADC AH,CH MOV DH,A7 MOV DL,58 SUB DL,7F SBB DH,34 2)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。 3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。 4、BCD码加减法 3

1)内容: MOV AL,58 ADD AL,25 DAA 2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。 实验报告要求 1、十六进制数加减法手算结果及实验结果 2、8088常用指令练习部分的逐条运行记录,思考结果及自编程序运行记录(列出自编程序)。 附:动态调试器DEBUG 使用 1、键入 DEBUG 进入 DEBUG,显示提示符 '-'。 2、退出DEBUG命令:Q 3、显示内存命令:D 起始地址 结束地址 4、修改内存命令:E 起始地址,连续修改键入空格键,键入回车键退出E命令。 5、检查寄存器命令:R 6、修改寄存器命令:R 寄存器名 7、小汇编命令:A 起始地址,不输入指令键入回车键退出A命令。 8、反汇编命令:U 起始地址 结束地址 9、文件命名命令:N 盘号:文件名 10、读文件命令:L 内存地址 11、写文件命令:W 内存地址 10、读扇区命令:L 内存地址 盘号(0--A:,1--B:) 扇区号 扇区数 11、写扇区命令:W 内存地址 盘号 扇区号 扇区数 12、运行命令:G=起始地址 结束(断点)地址 13、单步命令:T=起始地址 运行指令数,进入子程序内部。 14、单步命令:P=起始地址 运行指令数,不进入子程序内部。 15、内存搬家命令:M 起始地址 结束地址 目的地址 16、十六进制数加法:H 数值 数值 表1 标志寄存器显示内容一览表 标志位显示 1 0 CF CY NC ZF ZR NZ SF NG PL AF AC NA OF OV NV PF PE PO DF DN UP IF EI DI 4

实验二 内存操作数及寻址方法 实验目的 通过实验掌握下列知识: 1、DEBUG命令:G,N,W,L及Q。 2、8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。 3、8088指令:INC,DEC,LOOP,INT 3,INT 20H,寄存器SI,DI。 4、8088汇编语言伪操作:BYTE PTR,WORD PTR。 5、求累加和程序和多字节加减法程序。 实验类型:验证 实验内容和步骤 一、内存操作数及各种寻址方式使用 程序内容: MOV AX,1234 MOV [1000],AX MOV BX,1002 MOV BYTE PTR[BX],20 MOV DL,39 INC BX MOV [BX],DL DEC DL MOV SI,3 MOV [BX+SI],DL MOV [BX+SI+1],DL MOV WORD PTR[BX+SI+2],2846 操作步骤 1)用A命令键入上述程序,并用T命令逐条运行。 2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。 注意D命令显示结果中右边的ASCII字符及双字节数存放法。 思考:有关指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。 二、求累加和程序: 程序内容: MOV BX,1000 MOV CX,10 SUB AX,AX LOP: ADD AL,[BX] ADC AH,0 INC BX J: LOOP LOP INT3 5

操作步骤: 1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。 2)用命令N AA将此程序命名为文件AA(文件名可任取)。 3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址)。 4)用命令W 100将此程序存到AA命名的磁盘文件中。 5)用命令Q退出DEBUG。 6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序。若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。 7)用E命令在内存地址1000H处键入16个数字 8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值。 9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错。 10)重复G J与T,再检查AX是否正确。 11)用G命令使程序运行到结束,检查AX值是否正确。 三、多字节加法程序。 程序内容: MOV DI,1000 MOV CX,8 MOV SI,2000 CLC LOP: MOV AL,[SI] ADC [DI],AL INC SI INC DI LOOP LOP INT 20 操作步骤: 1)用命令键入此程序。 2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。 3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?),是否正确? 4)将INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试一试。 四、自编程序 用16位减法指令编一个32位(4字节)数减法程序,两个源数及结果存放地址同上题。调试并做记录。 实验报告要求 1、各项实验结果记录。 2、自编程序原稿及调试后修正稿,写出原稿错在那里。

相关文档
最新文档