编译一个扩展文件名为ASM的汇编语言源程序
- 格式:doc
- 大小:29.00 KB
- 文档页数:4
1、解压缩idesetup.rar
2、运行idesetup.exe安装软件
3、进行系统配置
3.1打开“配置”菜单,单击系统配置,如下图所示:
3.2在弹出的“系统配置”对话框中选择“编译/脚本”属性页,选中“单独文件默认使用DOS模式”选项,如下图所示,然后单击“确定”按钮,保存配置。
3.3打开“配置”菜单,单击系统配置,如下图所示:
3.2在弹出的“系统配置”对话框中选择“工具”属性页,进行如下操作
✓在“工具路径”栏中输入“C:\WINDOWS\system32\debug.exe”;
✓在“运行参数”栏中输入“$(FileDir)\$(FileName).$(OutExt)”;
✓单击“确定”按钮,保存配置
4 使用
4.1 新建一个asm源程序,打开“文件”菜单,选择新建
选择“文件”属性页,选择文件类型“ASM”,单击“确定”。
选择文件保存路径及输入文件名,单击“确定”
4.2 编辑汇编语言源程序
4.3 编辑完成后,打开“编译”菜单,点击“编译(ASM)”进行汇编
4.4 编译完成后,打开“编译”菜单,点击“连接(OBJ)”生成可执行文件
4.5 编译完成后,打开“编译”菜单,点击“运行(R)”运行程序,或单击“我的工具”按钮调用debug对程序进行调试,见以下两图。
实验一熟悉汇编语言使用环境一、实验目的:1、熟悉汇编语言的编辑、汇编、连接、运行的全过程。
2、了解汇编语言的程序结构、学习调用过程实现输入输出及用INCLUDE命令包含文件的方法。
3、算术运算类操作二、实验内容和步骤:1、汇编语言源程序要运行的四个步骤:(1)用编辑软件EDIT或记事本编辑一个扩展文件名为ASM的汇编语言源程序。
(2)用汇编程序MASM或TASM 汇编上述的汇编语言源程序,形成目标代码文件。
(扩展名为OBJ)(3)用连接程序LINK 或TLINK连接目标代码文件,形成可执行文件。
(扩展名为EXE)(4)运行可执行文件。
观察执行结果,以验证其正确性。
2、从键盘上输入两个十进制数正数(<32767),相加并显示结果。
参考程序:.model tiny.stack 256.CODESTART:CALL read ;从键盘接受一个十进制数MOV AX,BXcall dpcrlfCALL read ;从键盘接受一个十进制数ADD bx,aXcall dpcrlf ;回车换行CALL write ;显示结果.exit 0INCLUDE out_B_D.ASM ;把二进制转换为十进制数输出过程:write INCLUDE in_D_B.ASM ;把二进制转换为十进制数输入过程:readEND START3. 改写程序为输入两个十进制数,相减并显示输出。
4.改写程序为输入两个十进制数,相乘并显示输出。
5.改写程序为输入两个十进制数,相除并显示输出。
(注:例4.27read:十进制—>二进制转换过程,出口参数BX=二进制数;例P4.28,write:二进制—>十进制转换过程,入口参数BX=二进制数, dpcrlf:回车换行)三、记录结果与分析:(截图并打印在实验报告上)四、实验中遇到的问题和解决的步骤、方法五、问题与思考(2位压缩BCD加、减及转换成对应ASC输出等运算、字节的非压缩BCD加、减、乘等运算。
汇编语⾔期末试卷A卷及答案浙江理⼯⼤学2011—2012学年第 1 学期《汇编语⾔A》期末试卷(A)卷班级:学号:姓名:⼀、单项选择题(在每⼩题的四个备选答案中,选择⼀个正确答案填在提⼲后的括号内,每⼩题2分,共30分)1.下⾯表⽰段定义结束的命令是( )A. ENDPB. ENDSC. ENDMD. END2.8086CPU在基址变址寻址⽅式中,基址寄存器可以是( )A. AX或CXB. BX或BPC. SI或BXD. DX或DI3.执⾏CALL FAR PTR SUB1指令后,在堆栈区域中应( )A.压⼊4个字节的内容B.弹出4个字节的内容C.压⼊2个字节的内容D.弹出2个字节的内容4.完成将累加器AL清零,并使进位标志CF清零, 下⾯错误的指令是( )A. MOV AL, 00HB. AND AL, 00HC. XOR AL, ALD. SUB AL, AL5.完成同指令XCHG AX,BX相同功能的指令或指令序列是( )A.MOV AX, BXB. PUSH AX POP BXC. MOV BX, AXD. MOV CX, AX MOV AX, BX MOV CX, AX6.⼗进制数- 115⽤16位补码表⽰是()A.F115H B.F073HC.FF8DH D.FF73H7.指令指针寄存器是()A. IPB. SPC. BPD. PSW8.指令JMP WORD PTR [BX][SI]属于()A..寄存器间接寻址B.相对基址变址寻址C.段内间接寻址D.段间间接寻址9.下列传送指令中有语法错误的是( )A. MOV CS, AXB. MOV DS, AXC. MOV SS, AXD. MOV ES, AX10.执⾏下列程序,设(SS)=2000H,AL中的数据在内存地址___________中( )MOV SP, 3000HMOV AX, 1234HPUSH AX┅A. 23000HB. 22FFCHC. 22FFEHD. 22FFFH11.逻辑移位指令SHR⽤于A. 带符号数乘 2B. 带符号数除 2C. ⽆符号数乘 2D. ⽆符号数除 212.若⽤数据定义伪指令定义数据:BUF DB 4 DUP(0,2 DUP(1,0)), 问:定义后,存储单元中有数据0100H的字单元个数是( )A. 4B. 3C. 8D. 1213.执⾏下列指令后:( )STR1 DW ‘AB’STR2 DB 14 DUP(?)CNT EQU $ - STR1MOV CX,CNTMOV AX,STR1则寄存器CL的值是A. 10HB. 12HC. 0EHD. 0FH14.上题中,指令执⾏后,寄存器AX的值是( )A. 00ABHB. 00BAHC. 4142HD. 4241H15.与MOV BX,OFFSET V AR指令完全等效的指令( )A. MOV BX, V ARB. LDS BX, V ARC. LEA BX, VARD. LES BX, V AR⼆、简答题(每⼩题4分,共20分)1. 简述汇编语⾔的上机过程2.在指令系统中,段内、段间返回均为RET指令。
(上机第一步)EDIT,是编辑程序,像一个文本编辑器,用来编辑汇编语言源程序,编辑好的程序扩展名为*.asm;(第二步)MASM,是汇编程序,用来把*.asm程序编译成二进制代码,该二进制代码文件称为目标程序,扩展名为*.obj;(第三步)LINK,是链接程序,用来把*.obj文件变成可执行目标代码,即可执行文件*.exe;在第二步和第三步中,可以发现程序语法上的错误;(第四步)DEBUG是调试工具,用于发现程序逻辑上的错误。
汇编语言的上机过程(基于MASM 6.15)汇编语言的一般上机过程:1.建立ASM文件 2.产生OBJ文件 3.产生EXE 文件4.程序的调试和执行MASM 6.15包含文件:***************************************************M ASM.EXE 汇编器E DOS下的文本编辑器E DIT.HLP EDIT帮助文件L IB.EXE 过程库管理程序L INK.EXE 连接器D OSXNT.EXEm l.err 汇编的错误信息文件m l.exe(masm and link)汇编连接器***************************************************D EBUG.EXE 调试器(一般是系统自带)***************************************************对于MASM 6.10以下的版本,汇编器和连接器是分开的,分别是MASM.EXE 和LINK.EXE,使用时要先用MASM.EXE生成.OBJ文件,再使用LINK.EXE生成.EXE文件。
ml.exe把MASM.EXE和LINK.EXE整合到一起,可以一步生成.EXE 文件。
ml命令有许多参数,可以使用ml /?命令查看。
下面介绍几个低级实用的参数:/AT Enable tiny model (.COM file)/c Assemble without linking 只汇编不连接/Fe<file> Name executable 指定.EXE文件名/Fl[file] Generate listing 生成列表文件(.LST)/Fm[file] Generate map 生成映像文件(.MAP)/Fo<file> Name object file 指定.OBJ文件名/I<name> Add include path 指定include文件的路径名两种开发环境:1.32位Windows控制台(CMD.EXE)①解压缩MASM6.15.ZIP到D:\②开始-程序-附件-命令提示符-右键-发送到桌面快捷方式③修改桌面命令提示符属性:目标:%SystemRoot%\system32\cmd.exe起始位置:D:\MASM④双击命令提示符图标即可进入基于32位Windows控制台下的汇编程序环境。
第3章自测练习一、选择题(四选一)1.表示一条处理器指令所在存储单元的符号地址是 C。
A变量 B常量 C标号 D偏移量2.汇编语言中的变量有多种类型属性,但错误的类型是B 。
A字节型byte B字符型charC字型word D双字型dword3.执行mov bx,seg var指令,BX得到变量var的B 。
A物理地址 B段地址 C偏移地址 D内容4.MASM语句中,采用C 分隔标号和指令。
A逗号 B分号 C冒号 D空格5.欲设定从偏移地址100H开始安排程序,可使用A 伪指令。
Aorg 100h Bstart=100hCstart db 100h Dstart equ 100h6.与“mov bx,offset var”指令等效的指令是 D 。
A movbx,varB 1dsbx,varCles bx,var D1ea bx,var.7.下条语句buf db l0 dup(3 dup(?,10),3,10)汇编后,变量buf占有的存储单元字节数是B 。
A 100B 80C 40D 208.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是 B。
A 0B 0FFFFHC 1D 0FFH9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。
A db`AB'B dw `AB'C db 0ABHD dw 0ABH10.在汇编语言程序中,对END语句叙述正确的是C 。
AEND语句是一可执行语句BEND语句表示程序执行到此结束CEND语句表示源程序到此结束DEND语句在汇编后要产生机器码11.下面的数据传送指令中,错误的操作是D。
Amov ss:[bx+di],byte ptr 10h Bmov dx,l000hCmov word ptr[bx],1000h Dmov ds,2000h12.下面指令执行后,变量dab中的内容是C 。
汇编语言程序的上机过程
1.建立源程序
用记事本写写代码,把扩展名改为.asm,存入masm文件夹中,保存类型改为“所有文件”,否则系统默认为.txt文件保存。
2.用MASM程序编译源文件,产生目标文件。
1)先进入C:\MASM>中
2)输入“masm MM”即masm 文件名(扩展名可以省略)
3)画蓝线的部分表示有0个警告和0个致命的错误,表示编译通过了。
3
目标文件查看:
3.用Link程序连接目标文件,产生可执行程序
输入“LINK 文件名.obj(扩展名可以省)”eg: LINK MM.OBJ
通过连接产生MM.exe文件,在命令符窗口输入dir命令查看。
4.直接输入文件名查看输出内容。
5.用debug程序调试与运行可执行文件
输入debug命令,屏幕显示:
-
“-”号表示debug系统提示符,
1)用u命令反汇编该文件,屏幕显示如下:
2)用d命令了解数据存储
格式为:
d 数据段地址:0
3)用g命令执行该程序
格式为
g=程序的首地址:0
表示程序正常终止,文件中的文件显示出来。
3)用r显示寄存器内容命令
这里的cs和IP显示了当前指向的指令及其代码,即即将执行的下一条语句。
实验一仿真软件的使用,简单程序设计一.实验目的:1.掌握单片机仿真软件的基本操作方法;2.熟悉汇编语言源程序的编辑、汇编、运行和检查运行结果的方法(能查看各存储空间中值的变化);3.掌握简单程序编写的基本方法和技巧;二.实验内容:1. 将内部RAM的30H—33H四个存储单元內分别存放01H、02H、03H、04H 四个数;然后送至工作寄存器R0—R3。
2.将内部RAM的30H—33H四个存储单元內的数分别传送至外部RAM的2030H--2033H存储单元中。
3. 将内部RAM的30—32H的连续3个字节中的无符号数相加,结果的低位送33H 单元,高位送34H单元实用文档三.实验步骤:1.实验内容1的步骤(1)新建文件,输入能实现实验内容1的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果:检查R0—R3的内容;(3)单步运行程序,并检查运行结果:检査R0—R3的内容;(4)查看程序的机器码。
2.实验内容2的步骤(1)新建文件,输入能实现实验内容2的源程序并以 .ASM为扩展名存盘(2)编译并运行程序,检查运行结果:检査外部RAM 2030H—2033H单元的內容(3)单步运行程序,并检查运行结果;(4)查看程序的机器码。
3.实验内容3的步骤(1)新建文件,输入能实现实验内容3的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果;实用文档(3)单步运行程序,并检查运行结果,检查33H、34H单元内容;(4)查看程序的机器码四.实验程序1.实验内容1的程序ORG 0000HMOV 30H,#00HMOV 31H,#01HMOV 32H,#02HMOV 33H,#03HMOV R0,30HMOV R1,31HMOV R2,32HMOV R3,33HEND实用文档2.实验內容2的程序ORG 0000HMOV 30H,#00HMOV 31H,#11HMOV 32H,#22HMOV 33H,#33HMOV DPTR,2030HMOV R0,#30HMOV R1,#04HLOOP:MOV A,·R0HMOVX ·DPTR,AINC R0INC DPTRDJNZ R1,LOOPSJMP $实用文档END3.实验内容3的程序ORG 0000HMOV 30H,#0F8HMOV 31H,#0C6HMOV 32H,#0D9HCLR CMOV A,30HADD A,31HJC NEXT1SJMP NEXT2NEXT1:INC R1NEXT2:ADD A,32HMOV 33H,AJC NEXT3实用文档SJMP NEXT4NEXT3:INC R1NEXT4:MOV 34H,R1SJMP $五.实验报告要求:1.对实验内容1和实验内容2的程序加注释。
汇编源程序名词解释
汇编源程序,也被称为汇编语言程序或汇编语言源程序,是指用汇编语言编写的程序。
汇编语言是一种低级的编程语言,其指令集与计算机的机器语言指令集一一对应。
因此,汇编源程序是人类可读的文本文件,包含了按照特定语法规则编写的指令。
然而,汇编源程序在机器上不能直接执行。
它必须经过一个称为“汇编”的过程,即翻译过程,才能变成计算机可以执行的机器语言程序。
汇编程序的核心功能是将汇编指令逐条翻译成机器指令,这正是汇编语言中“汇编”一词的含义。
汇编源程序的文件扩展名通常为.asm,经过汇编以后生成的浮动地址二进制文件扩展名为.obj。
这个.obj文件还需要经过连接才能生成可执行文件.exe。
总的来说,汇编源程序是计算机程序开发过程中的一个重要环节,它介于高级语言源程序和机器语言之间,既具有一定的可读性,又能直接对应到计算机硬件指令,因此在某些特定的应用场合(如系统编程、嵌入式系统开发等)有着广泛的应用。