原创 微机原理8086/8088汇编语言上机基本操作指导

2010-12-20 16:51 2661 5 6 分类: 软件与OS
8086/8088汇编语言,是在DOS环境下运行的编程语言,汇编语言是针对8086/8088 CPU的,凡兼容80X86指令系统的CPU ,都可以正常运行调试。如目前使用的Windows 2000 / Windows 2003 / Windows XP等系统下都可以编辑、调试汇编语言程序。
一、进入编辑调试环境

    1.开始→运行,在运行框输入CMD而后回车,即进入DOS环境。
  2.开始→程序→附件→C:命令提示符,也可进入DOS 环境。    
二、使用到的软件程序
     1.源程序编辑软件:EDIT.EXE,也可用其他任意编辑软件,如Windows环境下记事本,但最后扩展名要改为.ASM,否则无法汇编。
  2.汇编程序(MASM.EXE或TASM.EXE),将编辑好的.ASM源程序汇编成目标文件.OBJ。OBJ是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件,OBJ只给出了程序的相对地址,而EXE是绝对地址。
  3.连接程序(LINK.EXE或TLINK.EXE),LINK又称链接器,把一个或多个目标文件(.obj)链接成可执行(.exe)文件。
  4.调试程序(DEBUG.EXE或TD.EXE),DEBUG,俗称“抓臭虫”, DOS系统有力的侦错,跟踪程序运行,检查系统数据的工具程序,它是在字符界面下以单字符命令方式工作。要很好地使用它必须具备一定的汇编程序设计和硬件基本知识的能力,当然,它为汇编语言程序员提供了有效的调试手段。
  需要说明的是,EDIT、MASM、LINK、DEBUG是微软操作系统推出的汇编连接调试工具。在一般教学上使用就足够了。
  而TASM、TLINK、TD是Borland公司推出的。到目前为止,TASM的最后一个版本是5.0版,这个版本支持WIN32编程,并单独为WIN32编程附带有一整套32位程序:32位的编译器TASM32.EXE、连接器TLINK32.EXE和资源编译器BRC32.EXE。与这些32位程序对应的16位工具在软件包中依然存在,文件名为TASM.EXE,TLINK.EXE和BRC.EXE等。
三、程序编辑、汇编、连接操作步骤
  下面以编辑下面小例子,程序运行时在屏幕上显示“1 2 3 4 5 6 7 8 9”九个数字。说明汇编语言程序编辑过程。


例5,编程,在屏幕上显示1-9数字,中间留一空格,用INT 21H 2#调用。
程序:(xqb5.asm)
title   在屏幕上显示1_9 ASCII数字
STACK   SEGMENT PARA STACK 'SHOW1_9'
STACK   ENDS
CODE    SEGMENT
        ASSUME  CS:CODE,SS:STACK
START:  MOV     CL,0H       ;计数单元置初值0
        MOV     BL,30H      ;ASCII"0"
AGAIN:  MOV     DL,20H      ;显示ASCII空格
        MOV     AH,2        ;2#调用
        INT     21H
        INC     BL          ;bl--bl+1
        MOV     DL,BL
        MOV     AH,2        ;2#调用,显示ASCII字符
        INT     21H
        INC     CL
        CMP     CL,09H        ;比较cl<=9?
        JNE     SHORT AGAIN   ;若cl<=9,转again
        MOV     AH,4CH        ;若cl>9,退出程序,反dos
        INT     21H
CODE    ENDS
        END     START
     ;运行验证:
    ;汇编、连接后,直接C:\123\>xqb5 <回车>
    ;显示1 2 3 4 5 6 7 8 9


         ;按Ctrl+C,返回DOS窗口. 
  


    1.确定源程序的存放目录
  通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为123。并把EDIT.EXE、MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
  2.编辑源程序XQB5.ASM
     (1)开始→运行→在弹出的窗口中输入CMD,点确定,进入DOS窗口
     (2)执行CD \123   ;进入123子目录
     (3)执行EDIT XQB5.ASM 回车。显示EDIT编辑窗口。按上例格式进行编辑。菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
     (4)编辑完后,存盘。用Alt-F打开File菜单,用其中的Save功能将文件存盘。如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Save as”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名(本例中为C:\123\XQB5.ASM)。
     注:也可用Windows环境下记事本进行编辑,存盘为.TXT文件,但要重新改名后扩展名要为.ASM。
     3.汇编源程序形成目标文件OBJ
     使用MASM汇编程序对编辑好的ASM文件进行汇编,形成OBJ目标文件,同时也对ASM文件进行查错,显示错误之处所在的行。
  执行开始→程序→附件→命令提示符,打开DOS命令提示符窗口,然后用CD 命令转到源程序目录\123下。
         C:>CD \123<回车>
         C:\123>MASM XQB5.ASM<回车>
     系统会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:C:\123\XQB5.OBJ〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名XQB5.ASM并回车,然后进行的操作与上面完全相同。
     如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。如果源文件有错误,MASM会指出错误的行号和错误的原因。源程序的错误类型有两类:
     (1)警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得出错误的结果。此例中无警告错误。
     (2)严重错误(Severe Errors)。对于严重错误,MASM将无法生成OBJ文件。
     在错误信息中,园括号里的数字为有错误的行号,后面给出了错误类型及具体错误原因。如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。
     4.使用LINK连接程序形成可执行文件EXE
     汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。在DOS窗口具体操作如下:  
           C:>CD \123  <回车>
           C:\123>LINK xqb5.OBJ  <回车>
  进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:C:\123\XQB5.EXE〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(Object Modules),此时输入OBJ文件名xqb5.OBJ并回车,然后进行的操作与上面完全相同。
     如果没有错误,LINK就会建立一个xqb.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。如链接时有其它错误。须检查修改源程序,重新汇编、连接,直到正确。
     5.运行连接好的可执行程序EXE
     建立了xqb5.EXE文件后,就可以直接在DOS下运行此程序,如下所示:
    C:\ CD\123
    C:\123> xqb5〈回车〉
    1 2 3 4 5 6 7 8 9


       按Ctrl+C,返回原目录.
    C:\123>
     程序运行结束后,返回DOS。如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。有些程序需按Ctrl+c键或Ctrl+Break来终止程序运行。如果程序不显示结果,或程序进入死循环,这就要用DEBUG或TD来调试。
     6.程序调试
     调试程序可用DEBUG或TD来调试,也可在程序中设置断点,分段调试。
     Debug是为DOS提供的有力的侦错,跟踪程序运行,检查系统数据的工具程序,它是在字符界面下以单字符命令方式工作。要很好地使用它必须具备一定的汇编程序设计和硬件基本知识的能力。
  TD是一功能较强的调试跟踪工具,在DOS窗口,执行C:\123> TD xqb5.exe,即可启动并载入XQB>EXE文件。CPU窗口显示了CPU和内存的整个状态。利用CPU窗口可以:
* 在代码区内使用嵌入汇编,输入指令或对程序进行临时性修改。
* 存取数据区中任何数据结构下的字节,并以多种格式显示或改变它们。
* 检查和改变寄存器(包括标志寄存器)的内容。
  CPU窗口分为五个区域:代码区、寄存器区、标志区、数据区和堆栈区。
  在五个区域中,光标所在区域称为当前区域,用户可以使用Tab键或Shift-Tab键切换当前区域,也可以在相应区中单击鼠标左键选中某区为当前区。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2012-10-4 23:52

Very Good!

相关推荐阅读
用户307537 2011-07-12 01:24
ad603中文资料
ad603中文资料 2008-03-24 21:32:16|  分类: 电子设计 |  标签: |字号大中小 订阅 正文内容: 在很多信号采集系统中,信号变化的幅度都比较大,那么放大以后的信号幅...
用户307537 2011-06-10 20:39
电脑PC端下载电子市场(Market)软件,Android SDK模拟器安装电子市场(Market)
http://bbs.dospy.com/thread-10844471-1-404-1.html...
用户307537 2011-06-02 15:48
使用BSRR和BRR寄存器直接操作STM32的I/O端口
标签: STM32  GPIO   使用BSRR和BRR寄存器直接操作STM32的I/O端口 STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通...
用户307537 2011-05-30 22:53
免费芯片申请地址
免费芯片申请地址 1、铁电存储器(未见量的限制,据说最多有人申请了100片,不知真假.)介绍:铁电存储器(FRAM)产品将ROM的非易失性数据存储特性和RAM的无限次读写、高速读写以及低功耗等优势结...
用户307537 2011-03-20 23:16
STM32高级控制定时器1学习
学习STM32这么久了,很想将所学到的东西总结一下,好让自己不会在遗忘中迷失。 高级控制定时器(Tim1)是由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。 用途在于:测量输入信号的脉冲...
用户307537 2011-03-20 01:02
2440串口纠结后
以前一直都是在纠结在串口中,现在终于解决了。我整个人都好像轻松了不少。我又可以进行我的嵌入式之旅了。原来市面上卖的串口线,有两种,一种是默认TXD和RXD相连的,而另外一种没有,所以,我不知道,刚刚好...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条