连接(川大微机原理实验资料和内容以及MASM使用方法)
实验二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”,单击“确定”。
出错信息(川大微机原理实验资料和内容以及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软件使用教程及上机实验问题
上机实验问题
上机实验问题
• 什么是有效地址?
有效地址EA是一16位无符号数,表示操作数所在单 元到段首的距离即逻辑地址的偏移地址。 当操作数是存放在存储器中时,存储器的存储单元 的物理地址有两部分组成。一部分是偏移地址;一 部分是段地址。在8086/8088的各种寻址方式中,寻 找存储单元所需的偏移地址可由各种成分组成,称 为有效地址,用EA表示。可以通过存储器寻址方式 获得有效地址。
调试程序
在Masm for Windows中集成CV(全称CodeView)与DEGUB两种调试工具,默认为用CV调 试程序。 (1)用CV调试 先单击“运行”按钮生成EXE文件,再单击“调试”按钮。下图是调试求 3+5的汇编程序,当连续按F10或连续在命令窗口输入P或t命令执行到ADD AL,03时,可 以看到AL的值为8。
调试程序
(2)用DEBUG调试 ① 依次单击“工具/选项”出现图8的界面,选中“DEBUG 调试”,再单击确定。
调试程序
② 先单击“运行”按钮生成EXE文件,再单击“调试”按钮。 说明:图中是调试求3+5的汇编程序,当连续输入P命令执行到ADD AL,03时,可 以看到AL的值为8。
在线帮助
当编写程序时,有可能忘记某个指令的用法,只要用鼠标点击关键字,按右键在 弹出的菜单上选实时帮助(或按F2)即可获得该指令的帮助。
MOV BX,OFFSET BLOCK MOV SI,(6-1)*2 MOV DX,[BX] [SI]; 操作数的有效地址是基址和变址之和
上机实验问题
• P108 E3.11习题解答
该程序AX中存的内容就是偏移TABLE数组3个的地址内容
修改程序语法错误
提示: 汇编程序的语法错误信息的形式: 文件名 行号 错误编号 错误内容 ↓ ↓ ↓ ↓ E:\汇编程序\helloworld.asm(9):Error A2008:Syntax error:CODES 小技巧: 一条语句错误可能会产生若干条错误信息,该例就是因为第9行SEGMENT多输入 一个S,导致很多错误,只要在第9行SEGMENTS改为SEGMENT即可调试通过。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试 程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很 多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。
汇编语言程序设计实验内容(川大微机原理实验资料和内容以及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
实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机原理与接口技术实验报告二
微机原理与接口技术实验报告(二)1、实验内容一:实验目的:(1) 阅读《实验操作.ppt》, 学习汇编工具的使用(2) 学习附录的程序代码, 理解并输入、编译和查错3) 学习利用编译错误信息进行附录的程序修改;(程序包含一个语法错误和一个逻辑错误)4)学习程序流程控制: (条件跳转指令ja jb (call指令, 观察程序执行时堆栈的变化(学会用debug –g命令设置断点);5 )学习程序中有限的寄存器的使用。
2.实验内容:(1)打开masm for windows软件, 在其中输入实验要求附给的程序, 保存后运行, 程序报错:(2)经分析发现, “noneeded”没有定义, 改为“notneeded”后正常运行(3)运行过程中发现当字母或数字个数达到两位数时, 统计结果的各位与十位对调了。
如下图, 字母数应为13, 但显示为31(4)经检查, 发现第80行程序有误, inc指令应改为dec指令。
运行后程序正常, 调试完毕。
如下图程序框图如下:实验内容二:1.实验目的及内容:编写完整程序, 实现功能:统计以下字符串STR中空格的数目, 结果保存在COUNT中, 并把个数在屏幕上显示出来。
STR DB ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9'L EQU $-STRCOUNT DB ?(字符串STR可以从这里直接拷贝到程序中)实验结果:程序如下:dispmsg macro messgemov ah,9lea dx,messgeint 21hendmDATA segmenttishi db 0dh,0ah,'the original string is:' string db ' AB CDE FG H I J K L MNOPQ RST UV W XYZ 12 34 56 78 9' STRINGLEN= $-stringnewline db 0dh,0ahNspace db 0dH,0aH,'Number of char space is:',?,?Nsp db ?,'$'DATA endsSTACK segment stack 'stack'sta db 100 dup(?)stack endsCODE segmentASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,seg DATAMOV DS,AXxor cx,cxxor dl,dlmov cl,stringlenlea bx,stringcnt:mov al,[bx]cmp al,' 'jz yesspinc blloop cnt jmp shijinzhiyessp:inc dlinc blloop cntjmp shijinzhishijinzhi:lea bx,Nspmov ah,02hint 21hcall char2asc dispmsg tishiMOV AH,4CHINT 21Hchar2asc procmov dl,10 next: xor ah,ahdiv dladd ah,'0'mov [bx],ahdec bxor al,aljnz nextretchar2asc endpcode endsend startEND START运行结果如下:程序流程图如下:实验中遇到的问题及解决方法:1.汇编语言中寄存器有限, 在使用时注意是否保存寄存器中原有的值, 防止在使用寄存器时将原值改变。
四川大学微机原理实验报告
微机原理实验报告学院:专业班级:姓名学号实验一汇编语言编程基础1.3汇编语言程序上机操作和调试训练一.功能说明运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。
运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。
运用LINK.EXE文件进行连接,形成*.EXE文件。
仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。
运用DEBUG。
EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。
再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。
二.程序流程图三.程序代码修改后的程序代码如下:DATA SEGMENTA DB 9,6,8,7,5B DB 5C DB 5 DUP (0)N EQU 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,ALEA DI,CMOV CX,NMOV AH,0LP1: LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2: MOV DL,[DI]ADD DL,30HMOV AH,2INT 21HINC DILOOP LP2MOV AH,4CHINT 21HCODE ENDSEND START四.实验感想和收获通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。
在这次试验中我也遇到了一些困难。
在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。
我这才想起来我的操作系统是64位的,和该软件版本不兼容。
微机原理实验教程
实验一汇编程序MASM的使用Microsoft公司提供了两种汇编程序版本,一种是全型版本宏汇编MASM;一种是小型版本ASM。
ASM的功能是MASM功能的一个子集,它不支持宏汇编、条件汇编等。
所以我们主要讲解MASM的使用。
一、实验环境1.为了对包括Pentium指令在内的汇编语言的源程序文件进行汇编,应有一台Pentium以上的计算机。
操作系统使用DOS5.0以上版本或windows操作系统命令提示符。
2.编辑程序可用EDIT、WPS、WORD等。
3.MASM 5.0以上宏汇编系统,包括:(1)MASM:汇编程序(2)LINK:连接程序(3)CREF:索引程序(4)LIB:库管理程序4.DEBUG调试程序说明:后面的内容假定在E盘上建立了MASM子目录,且上述程序都在该目录中或建立了相应路径。
二、汇编语言源程序上机操作过程用汇编语言编制程序,一般要经历如下步骤:1.编辑源文件用编辑程序EDIT或其它编辑程序建立源程序。
源程序文件必须以.ASM位扩展名存盘。
2.汇编源程序。
由编辑程序所建立的.ASM文件,只是个文本文件,计算机无法执行。
需要经过汇编程序的汇编,使其转为目标代码文件。
它是通过调用宏汇编MASM 程序完成这一汇编操作的汇编程序还将对原文件进行检查,如发现有错,将给出错误原因。
程序设计者可根据它分析和修改源程序,并再经过汇编,直到无误为止,此时得到的是一个目标文件(.OBJ)。
汇编源程序过程如下:先启动DOS,然后才进入汇编环境。
假设MASM系统(以MASM5.0为例)已预先装在硬盘的MASM子目录中。
下面均以E盘上操作为例进行说明。
假设事先用EDIT编辑程序编辑的源程序为EXAM1.ASM,则汇编过程如下:E:\MASM\masmMicrosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985,1987.All rights reserved.Source filename[.ASM]:EXAM1.ASMSource listing [NUL.LST]:Cross-reference [NUL.CRF]:51698+417454 Bytes symbol space freeO Warning ErrorsO Severe Errors宏汇编程序被调入以后,先显示版本号。
大学微机原理实验报告(3篇)
第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。
2. 掌握微机硬件的基本操作和调试方法。
3. 熟悉汇编语言编程和程序调试技巧。
4. 通过实验加深对微机原理课程的理解,提高动手能力。
二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。
2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。
3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。
4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。
2. 编写程序实现字符串比较功能。
3. 编写程序实现乘除法运算。
三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。
- 使用示波器检测实验装置的信号是否正常。
2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。
- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。
汇编语言上机指导及例示(川大微机原理实验资料和内容以及MASM使用方法)
汇编语言上机指导及例示、习题从如何建立源文件到进行调试作下简要的介绍,并配例题说明。
由于本人水平有限,在下文在如有错误及可以进一步修改的地方请大家指出汇编语言上机过程:一、上机前的软件准备:MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等)文本编辑器(如: , TURBO.EXE , TC.EXE , C.EXE 等)汇编程序(如:MASM.EXE , ASM.EXE 等)连接程序(如:LINK.EXE 等)调试程序(如:DEBUG.EXE 等)二、汇编程序建立过程:a.建立汇编源程序─通过───→b.编译为目标文件─↓┬─→d.连接为可执行文件↑│ c.不通过,重新修改(语句错误)↓├──────────────────────┘↓↑ f.不正确,用调试工具调试,重新修改(逻辑错误)↓└────────────────────────────←e运行↓正确g.完成三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明PROCEDURE a:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。
将源程序代码录入计算机的方法很多,下面将介绍具体方法。
1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。
存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。
2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。
微机原理与接技术实验报告
目录实验一数据传送 (2)实验二算术运算 (8)实验三代码转换 (15)实验四程序的基本结构练习 (21)实验五存储器(RAM 6264)扩展 ............................. 错误!未定义书签。
实验六可编程并行接口(8255)扩展........................ 错误!未定义书签。
实验七可编程计数/定时器(8253)扩展 .................. 错误!未定义书签。
实验八A/D、D/A转换................................................. 错误!未定义书签。
实验九可编程串行通信接口(8251)扩展................ 错误!未定义书签。
1实验一:数据传送实验学时:2实验类型:验证实验要求:必修一.实验目的1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法;学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件);学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件);学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件);学习用调试软件TD.EXE调试可执行文件;2.掌握各种寻址方法以及简单指令的执行过程。
二.实验器材PC机三.实验组织运行要求1.利用堆栈实现AX的内容与BX的内容进行交换。
堆栈指针SP=2000H,AX=3000H,BX=5000H;2.汇编、调试、观察、记录结果;⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘;⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件);⑶用调试软件TD调试、运行程序,观察、记录结果。
四.实验步骤1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘⑴汇编语言程序的上机过程①进入\SY86子目录E:>CD\SY86E:\SY86>②进入QEDIT.EXE 编辑界面E:\SY86> Q③输入文件名*.ASM(如M1.ASM)后,输入源程序源程序DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义DB 512 DUP(0)DATA ENDSSTACK SEGMENT PARA STACK’STACK’ ;堆栈段定义DB 512 DUP( ?)STACK E NDS2CODE SEGMENT PARA PUBLIC’CODE’ ;代码段定义ASSUME CS :CODE,DS :DATA,ES:DATA,SS :STACKMAINPROC FAR ;定义过程程序PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,2000hMOV AX,3000hMOV BX,5000hPUSH AXPUSH BXPOP AXPOP BXRETMAIN ENDP ;结束主要部分程序CODE ENDS ;结束代码段END MAIN ;结束汇编⑵用MASM程序产生.OBJ文件操作如下:E:\SY86> MASM M1.ASM M1.OBJMicrosoft(R)Macro Assembler Version 5.00Copyright(C)Microsoft Corp 1981-1985,1987. All rights reserved. Object Filename [HEXASC.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:51576+385928 Bytes symbol space free0 Warning Errors0 Severe Errors以上说明汇编过程已经完成。
汇编编译工具MASM6.11的使用实验报告
2)、用MASM命令对源文件进行汇编,产生.OBJ文件。若汇编时提示有错(注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。),用文字编辑工具修改源程序后重新汇编,直至通过。
3)、用LINK将.OBJ文件连接成可执行的.EXE文件。
4)、在DOS状态下运行LINK产生的.EXE文件。若未出现预期结果,用DEBUG检查程序。
Microsoft (R) MASM Compatibility Driver
Copyright (C) Microsoft Corp 1993. All rights reserved.
Invoking: ML.EXE /I./Zm /c hello.asm
Microsoft (R) Macro Assembler Version 6.11
熟悉汇编编译工具masm6.11的使用:学会使用MASM编译程序、学会使用LINK
连接程序。注意:应事先准备好示例程序。
编辑一个扩展文件名为ASM的汇编语言源程序。
用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件(扩展名为OBJ)。
用连接程序LINK或TLINK连接目标代码文件,形成可执行文件(扩展名为EXE)。
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: hello.asm
D:\MASM611\BIN>link hello
Microsoft (R) Segmented Executable Linker Version5.31.009Jul 13 1992
实验数据和结果
Microsoft Windows XP [版本5.1.2600]
实验一如何用MASM5
实验一如何用MASM5实验一如何用MASM5MASM(Microsoft Macro Assembler)是一种汇编语言开发工具,由微软公司开发并用于MS-DOS和Windows操作系统。
以下是一些使用MASM5的步骤和注意事项:2.配置环境变量:MASM5安装后,需要配置系统的环境变量,以便在命令行中访问MASM5的可执行文件。
将MASM5的安装目录添加到系统的PATH环境变量中。
4. 编写汇编代码: MASM5使用8086汇编语言,编写代码时需要遵循特定的语法规则。
在.asm文件中,您可以使用各种指令和汇编器指令来编写代码。
例如,您可以使用MOV指令将一个数据从一个位置复制到另一个位置。
5. 汇编和链接: 打开命令提示符,导航到包含您的.asm文件的目录。
运行以下命令来汇编和链接您的代码:```masm filename.asm;link filename.obj;```这将生成一个可执行文件,可以在DOS或Windows命令行下运行。
6.运行程序:运行生成的可执行文件,您将看到您的汇编程序在屏幕上输出结果。
请注意,MASM5是一个古老的工具,可能不再在最新的Windows操作系统上正常工作。
如果您遇到问题,您可以尝试使用最新的版本,如MASM32或MASM64总结:在实验一中,我们学习了如何使用MASM5进行汇编编程。
我们了解了如何安装MASM5,配置环境变量,并编写汇编代码。
我们还学习了如何通过汇编和链接命令来生成可执行文件,并在命令行中运行它。
尽管MASM5是一个古老的工具,但它仍然是学习汇编语言和了解低级计算机原理的好选择。
编辑,汇编(川大微机原理实验资料和内容以及MASM使用方法)
在"开始"找到运行单击在运行中输入CMD输入CD空格\(反斜杠),(进入C盘根目录)输入F:(进入F盘)输入CD空格MASM(进入MASM文件夹)输入MASM空格0817.ASM(检查0817.ASM有无错误并生成.OBJ文件),直到没错输入LINK空格0817.OBJ(进行连接)输入0817.EXE运行汇编语言应用程序的开发一.汇编语言应用程序的开发过程开发一个可独立运行的汇编语言程序,主要包括以下基本步骤:1.用文本编辑软件编辑汇编语言源程序模块(SOURCE MODULES)。
一个完整的汇编语言源程序,可以是单模块结构格式,也可以是多模块结构格式。
无论采用哪一种结构格式,每一个模块都必须是一个可独立汇编的源程序文件(扩展名为.ASM)。
常用的文本编辑软件如EDIT,QEDIT,PE,或由其他高级语言(如TC,VC等)提供的编辑环境,都可以用来编辑汇编语言源程序。
2.调用宏汇编程序MASM对源程序的每一个模块进行汇编(包括对宏的处理),生成目标文件.OBJ。
在汇编过程中,MASM将对源程序模块进行语法检查,若有语法错误,则在汇编结束时,将错误信息显示出来。
这时程序设计者就得返回第二步,再调用编辑程序,并根据提示信息,对有语法错误的语句进行修改,然后再重新进行汇编,直到MASM未发现语法错误为止。
在汇编过程中,出了对每一个源程序模块文件都要生成对应的目标文件.OBJ外,还可以选择生成列表文件.LST和交叉引用文件.CRF,以提供调试时使用。
在汇编时产生的错误,通常称为语法错误。
注意:在汇编过程中不能发现程序的逻辑功能错误。
3.调试连接程序LINK,对一个或多个目标文件.OBJ进行连接,生成一个可执行文件.EXE。
这里所说的目标文件,有的可能是在汇编时产生的,有的可能是由某个库文件.LIB 提供的。
在连接过程中,还可以选择生成内存映像文件.MAP,以供在调试程序时使用。
在连接过程中,如果发现有错误,也会将错误信息显示在屏幕上。
《微机原理实验报告》word版
班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备PC机一台masm软件三实验内容及步骤(1)输入程序并检查无误,经汇编连接后装入系统(2)输入E3500后回车,在3500-3510单元中分别送入00~09十个数据(3)按“T“键运行以上程序直至程序运行完(4)输入D3600后回车,查看3600单元后面的数据四程序及其显示的结果(1)程序(2)显示的结果实验三运算类编程实验一实验目的(1)掌握使用运算类指令编程及调试方法(2)掌握运算类指令对各状态标志位的影响及其测试方法二实验设备PC一台masm软件三实验内容及步骤(1)二进制双精度加法运算(2)输入程序并检查无误,经汇编连接后装入系统(3)用U0000:2000查看MOV AX,DA TA的语句,即得到数据段段位置CS:1412用E命令E1412:0000回车,给XL,YL,YH赋值存入二进制数A0,65,15,00和9E,B7,21,00(4)用G=0000:2000,运行以上程序(5)输入D1412:0008,检验显示的结果是否为:3E,1D,17,00四实验程序五程序显示的结果实验四分支程序设计实验一实验目的:(1)掌握分支程序的结构(2)掌握分支程序的设计,调试方法二实验设备:PC机一台masm软件三实验内容设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区传送到另一存储区。
源数据块和目的数据块在存储中可能有三种情况,对于两个分离的情况,数据的传送从数据块的首位置开始,或者从数据块的末位置开始。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏,可以得到以下结论:(1)当源数据块首址大于目的块首址时,从数据块首址开始传送数据。
(2)当源数据块首址小于目的块首址时,从数据块末址开始传送数据。
四实验步骤(1)按实验流程图设计编写实验程序(2)输入程序并检查无误后,经汇编,连接后装入系统(3)用E命令在以SI为起址的单元中填入十六个数(4)用G=0000:2000运行实验程序(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同五实验程序及结果显示(1)实验程序(1)实验结果显示实验五循环程序设计一实验目的(1)加深对循环结构的理解(2)掌握循环结构程序设计的方法(3)熟练掌握调试循环程序的方法二实验设备:PC机一台masm软件三实验内容求数据区内负数的个数:设数据区的第一单元存放区内单元数据的个数,从第二单元开始开始存放数据,在区内最后一个单元存放结果。
微机原理上机实验;微机原理程序调试基础指导
MASM5.0宏汇编语言编程调试上机实验报告姓名:XXX学号:1113014XX班级:机械110X学院:机械工程学院2013/11/7实验一MASM5.0宏汇编语言编程调试一、实验目的为了深入理解汇编语言指令系统常用指令的含义,掌握汇编语言程序的编辑、连接和调试方法,用MASM5.0进行编程调试实验。
MASM5.0是在DOS环境下运行的一种功能很强的宏汇编程序,除具有一般汇编程序的功能外,还支持宏处理、条件汇编。
一、实验方法MASM5.0宏汇编语言系统只有数百K字节,主要由,MASM.EXE,LINK.EXE和DEBUG.EXE四个文件组成,系统不需要安装。
由于Windows2000以上版本的操作系统没有MS-DOS方式,需从开始菜单的运行子菜单处键入CMD或COMMAND命令,进入命令行方式,设法进入汇编系统所在的文件夹子目录后。
操作过程如下:1.EDIT 文件名.ASM进入编辑状态,编辑汇编语言源程序。
文件名.ASM本实验程序目的:在内存BUF1单元中存放一有符号数,判断此数的正负情况,并将正负情况存入BUF2中。
本实验结果为:在内存BUF1中存放数字36,判断36正负为正即0000 0001,经补码显示为0000 0001存放到BUF2中。
DA TA SEGMENTBUF1 DB 036HBUF2 DB ?DA TA ENDSPROGRAM SEGMENTASSUME CS:PROGRAM,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET BUF1MOV DI,OFFSET BUF2MOV AH,[BX]OR AH,AHJZ ZEROJL MINUSMOV AH,01HJMP ASSIGNZERO: MOV AH,00HJMP ASSIGNMINUS: MOV AH,0FFHASSIGN: MOV [DI],AHMOV AH,4CHINT 21HPROGRAM ENDSEND START2.MASM文件名.ASM对源程序进行汇编,根据提示输入三次文件名,分别得到目标代码文件:文件名.OBJ ;列表清单文件:文件名.LST和交叉参考文件:文件名.CRF。
出错信息(川大微机原理实验资料和内容以及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在一语句行中有多余的字幅。
指在一行中除了已有该汇编语句的全部信息外,还有多余的字幅。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
连接
无论是单模块程序,还是多模块程序,虽然在对每一个模块汇编后都生成了相应的目标文件.OBJ,但它们却是不可运行的。
只有在将它们连接(LINK)后,才能生成一个可执行(运行)的.EXE文件或程序。
8086目标模块连接程序LINK,能够把一个或多个独立的目标文件.OBJ和定义于库文件.LIB中的子程序与变量,连接装配成一个可重定位的可执行文件.EXE。
在连接过程中,除了生成.EXE程序外,用户还可以根据需要,生成相应的内存映像文件.MAP。
LINK的操作
在DOS环境下使用LINK,同使用MASM一样,也有提示应答和命令行两种使用法。
1.提示应答方式
在DOS提示状态下,键入LINK命令后,便显示版权信息,接着依次显示目标模块文件名,可执行文件的文件名、映像文件的文件名和库文件名等提示信息。
用户只需根据提示信息,键入或选用相应的文件名就可以了。
例如:
C:\MASM >LINK
Microsoft ® Corp. Overlay Linker Version 3.60
Copyright © Microsoft Corp. 1983-1987,All rights reserved
Object Modules[.OBJ]:EXAMPLE↙—连接EXAMPLE.OBJ目标模块
Run File [EXAMPLE.EXE]:↙—生成的默认EXAMPLE.EXE文件
List File[NUL.MAP]:↙—默认不生成.MAP文件
Libraries[.LIB]: ↙—连接时不需要库文件
如果需要连接多个目标模块,则在相邻模块文件名间用空格(Space)或“+”号隔开。
如果选用默认文件名,只需按回车键就可以了。
通常,汇编程序不需要任何库文件,这时也只需按回车键就行了。
假设有MODA.OBJ、MODB.OBJ和MODC.OBJ三个目标模块,程序中调用了MA TH.LIB 库中的某些子程序,且该库文件存放在B盘上的lib子目标中,希望连接时能生成MODA.EXE和MODA.MAP。
这时,提示应答信息为:
Object Modules[.OBJ]:MODA+MODB+MODC↙
Run file[MODA.EXE]:↙
List File[NULL.MAP]:MODA↙
Libraries[.LIB]:B:\LIB\MATH↙
2.命令行方式
LINK的命令行格式为:
LINK OBJfiles[,[EXEfile][,[MAPfile][,[Libraries]]]][Options][;]
例如,连接EXAMPLE.OBJ生成EXAMPLE.EXE,可以用命令:
C:\MASM>LINK EXAMPLE,,↙
或
C\:MASM>LINK EXAMPLE;↙
与前面示例相同,连接MODA.OBJ和MODC.OBJ的命令行是:
C:\MASM>LINK
MODA+MODB+MODC,,MODA,B:\LIB\MATH↙
在连接中,也可能因某种原因而导致错误的发生。
这时应根据错误信息,确定发生错误的原因,并进行修改。
然后再重新汇编、连接,直至正确地完成连接操作为止。
内存映像文件(.MAP)
内存映像文件是一个含有程序中定义的段的起始地址、结束地址、长度、段名(NAME)及类别名(CLASS)的文本文件。
下面就是连接EXAMPLE.OBJ时生成的.MAP文件的列表:
Start Stop Length Name Class
00000H 00011H 00012H DATA DATA
00020H 0005FH 00040H STACK STACK
00060H 00077H 00018H CODE CODE Program entry point at 0006:0000
在调试较大的程序时,MAP文件中的相关信息会给调试工作带来很大的帮助。