编译一个扩展文件名为ASM的汇编语言源程序

合集下载

MASMplus使用说明

MASMplus使用说明

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加、减、乘等运算。

32位汇编语言程序设计部分课后习题答案

32位汇编语言程序设计部分课后习题答案

3.1 简答题-1
(1)如何修改“MOV ESI, WORD PTR 250”语句使其 正确?
• 删除“WORD PTR”即可
(2)为什么说“XCHG EDX,CX”是一条错误的指令?
32位汇编语言习题解答
课件制作: 钱晓捷
钱晓捷,32位汇编语言程序设计,机械工业出版社
第1章习题:汇编语言基础
1.1 简答题(1、3、6、7、8) 1.2 判断题(1、6、7、8、9) 1.3 填空题(3、4、5、7、10) 1.9、1.13、1.15、1.16
1.1 简答题-1
(1)哪个处理器的指令系统成为Intel
• 没有
(8)汇编语言的标识符大小写不敏感意味着什么?
• 表示字母大小写不同、但表示同一个符号
4
习题解答
1.2 判断题
1)EAX也被称为累加器,因为它使用最频繁。
• 对,EAX中的A来自英文累加器(Accumulator)
6)处理器的传送指令MOV属于汇编语言的执行性语句
•对
7)汇编语言的语句由明显的4部分组成,不需要分隔 符区别。
13,10
byte
'---+-------------------------------',
13,10
byte '20 |',20h,20h,21h,20h,22h,20h,23h,20h,
24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20h
byte 2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h,
• 寄存器寻址,立即数寻址
(9)已知ESI=04000H,EBX=20H,指令“MOV EAX, [ESI+EBX*2+8]”中访问的有效地址是__________。

汇编语言期末试卷A卷及答案

汇编语言期末试卷A卷及答案

汇编语⾔期末试卷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指令。

汇编语言的上机过程(基于MASM 6.15)

汇编语言的上机过程(基于MASM 6.15)

(上机第一步)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)

汇编语言模拟题答案-(3)

第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显示了当前指向的指令及其代码,即即将执行的下一条语句。

汇编语言教程

汇编语言教程
教学进程
5.1.3 伪指令语句
3. 段定义伪指令
格式:
段名 SEGMENT
…… 段名 ENDS
段定义时,必须将段和段寄存器自之间建立相应关系,能够用 ASSUME伪操作来实现,其格式为:
ASSUME 段寄存器名:段名1[,段名2……]
教学进程
5.1.3 伪指令语句
段定义伪指令举例
例: * * * * * * * * * * * * * * * * * * * * * * *
教学进程
5. 属性操作符
5.1.2 汇编语言语句
● SHORT操作符 格式:SHORT 标号 功能:用来修饰转移指令旳目旳地址旳属性,偏移量为8位。
● 分类运算符 格式:HIGH 体现式 LOW 体现式 功能:从体现式种分离出高字节、低字节。
6. 关系运算符
运算符: EQ(相等)、NE(不等于)、LT(不不小于)、GT(不小 于)、
5.1 8086汇编语言基础
● 汇编语言旳处理过程: (1)编写汇编语言源程序,生成扩展名为ASM旳汇编源源文件。 (2)对汇编源程序进行编译。 (3)对目旳文件进行连接 。
教学进程
5.1 8086汇编语言基础
● 汇编语言进行程序设计旳优点 1)充分利用机器旳硬件功能和构造特点,加紧程序旳执行速度,
LE(不不小于或等于)、GE(不小于或等于),当关系成 立时,
运算成果为1(FFH或FFFFH),不然为0。
格式:体现式1 关系运算符 体现式2
教学进程
汇编语言语句 7.运算旳优先级别
优先级 高

运算符(操作符) 括号中旳体现式 LENGTH,SIZE,WIDTH,MASK PRT,OFFSET,SEG,TYPE,THIS,段前缀 HIGH,LOW *,/,MOD,SHL,SHR +,EQ,NE,LT,TE,GT,GE NOT OR,XOR SHORT
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用LINK将OBJ文件连接成可执行的EXE文件
在DOS状态下运行LINK产生的EXE文件。用DEBUG检查程序.
程序



data1 segment
msg db "Hello,world.",0dh,0ah,"$"
data1 ends
code1 segment
assume cs:code1,ds:data1
Run File [hello.exe]:
List File [nul.map]:
Libraries [.lib]:
Definitions File [nul.def]:
LINK : warning L4021: no stack segment
C:\MASM611\BIN>hello.exe
Hello,world.
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.
实验报告
课程名称:微机原理与接口技术
实验名称:汇编编译工具MASM6.11的使用
专业:网络工程
学号:
姓名:
实验地点:九章楼N6-202
实验日期:2017.2.22
常熟理工学院




编译一个扩展文件名为ASM的汇编语言源程序
用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件
用连接程序LINK或TLINK连接目标代码文件,形成可执行文件
C:\MASM611\BIN>link hello.obj
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.
C:\Documents and Settings\Administrator>cd c:\masm611\bin
C:\MASM611\BIN>masm hello.asm
Microsoft (R) MASM Compatibility Driver
Copyright (C) Microsoft Corp 1993. All rights reserved.
心得体会
在编译过程中,主要注意,下载文件时,放在正确的位置,输入代码时,要细心,细小的错误都有可能打不开文件,过程稍有问题,但及时改进,下次努力。
成绩
教师(签署)
start:
mov ax,data1
mov ds,ax
lea dx,msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
code1 ends
end start
实验数据和结果
Microsoft Windows XP [版本5.1.2600]
(C)版权所有1985-2001 Microsoft Corp.
Invoking: ML.Eห้องสมุดไป่ตู้E /I. /Zm /c /Ta hello.asm
Microsoft (R) Macro Assembler Version 6.11
Copyright (C) Microsoft Corp 1981-1993. All rights reserved.
Assembling: hello.asm
运行可执行文件,观察执行结果,验证其正确性
项目实

环境
汇编语言的计算机环境DOS\WINDOWS
DOS:记事本+MASM6.11+DEBUG调试工具
源程序编辑工具:记事本
汇编编译器:MASM6.11
调试工具:DEBUG
实现原理和方法
用文字编辑工具输入示例程序,存盘取名HELLO.ASM
用MASM命令对源文件进行汇编,产生.OBJ文件。
相关文档
最新文档