当前位置:文档之家› 实验三 汇编语言程序上机操作方法

实验三 汇编语言程序上机操作方法


RET DOPRINT PROC NEAR MOV AH,9 INT 21H RET DOPRINT ENDP DOCHACK ENDP C_SEG ENDS END START (1)输入程序并检查无误,经汇编、连接后生成 EXE文件,此步骤 同 “3+5”的加法程序的汇编和连接过程。 (2)用 DEBUG 的 U 命令查看 MOV AX,XXXX(DATA)语句,即得到 数据段基址 DS:XXXX。 (3)用 G 命令运行以上程序,观察结果。 (4)修改 STRING2和 STRING1相同,再用 G 命令运行,观察结果。 (5)用 DEBUG 调试的详细过程请参考“3+5”的加法程序。
实验三 汇编语言程序上机操作方法
实验目的 1.掌握使用 EDIT编写程序,MASM 汇编程序,LINK 连接程序,生成目 标文件和可执行文件的方法。 2.掌握可视化窗口汇编语言集成开发工具 Visual ASM 1.0 评测版的 使用方法。 3.学习程序设计的基本方法和技能,熟练掌握用汇编语言程序设计、 编写、调试和运行程序的方法。 实验学时 2 学时 实验器材 PC 微机及软件。 实验原理 1.汇编语言上机的步骤 (1)编辑源程序 用全屏幕编辑程序_EDIT、Vis。编辑好的程序存盘时,存成一个后缀 名为.ASM 的源程序文件。
D_SEG ENDS E_SEG SEGMENT E_SEG ENDS S_SEG SEGMENT STACK DW 100 DUP(?) S_SEG ENDS C_SEG SEGMENT ASSUME CS:C_SEG,DS:D_SEG,ES:E_SEG MAIN PROC FAR START: PUSH DS SUB AX,AX PUSH AX MOV AX,D_SEG MOV DS,AX MOV ES,AX XOR AX,AX CALL DOCHACK RET
返回方式的汇编语言程序框架;并且本软件成功的解决了_Windows_ 平台上的一些内存泄漏的问题,增加了记录_WorkSpace和_Output_位 置的功能,具有不同源程序的输 出相对独立的特性,在状态栏对于 行列和选区有详细显示,具有编译链接和语法着色的功能。 该开发工具有文件、查看、帮助三个菜单。 实验内容与步骤 1.用汇编语言编写一个计算“3+5”的加法程序,并汇编、连接生成 可执行文件,计算执行结果。 (1)通过_EDIT或 Visual ASM 1.0 编辑源程序: Code segment_ assume__cs_:_code_ Start:____mov_al,_33h_ mov_dl,_35h_ add_dl,al_ sub_dl,30h_ mov_ah,02h_ int_21h_ mov_ah,4ch_ int_21h_ code____ends_ end_start_ 程序编辑完后,保存为 SY3-1.ASM。
(3)用 LINK 程序形成可执行文件 SY3-1.EXE_ C>link_ Microsoft_(R)_Overlay_LinkerVersion3.64_ Copyright_(C)_Microsoft_Corp_1983_1988._All_rights_reserve d._ Object_Modules_[.OBJ]: SY3-1.OBJ_ Run_file_[PRO.EXE]:SY3-1 List file_[NUL.MAP]:SY3-1 Libraries_[.LIB]:SY3-1_ Warning:NO_STACK_segment_ There_was_0_error_detected._ (4)用_DEBUG_调试 SY3-1.EXE_ 文件 ・ 用_DEBUG_调入 SY3-1.EXE文件_ C>DEBUG_SY31.EXE_ ・ 用_U命令查看程序是否进入内存 一_U_ 0B75: 0000__B033____MOV_AL,33_ 0B75:0002__B235____MOV_DL,35_ 0B75:0004__02D0____ADD_DL,AL_ 0B75:0006__80EA30__SUB_DL, 30_ 0B75:0009__B402_____MOV_AH,02_ 0B75: 000B__CD21____INT_21_ 0B75:000D_B44C____MOV_AH,4C_ 0B75:000F_CD21___INT_21_ ・ 用_R,T命令跟踪程序的执行过程, 并查看_CPU内部寄存器的内容。 一 R AX=0000 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
一 T AX=0233 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=000B NV UP EI PL NZ NA PO NC_ 0B75:000B CD21_ INT_____21_ ・ 在_DEBUG_状态下执行程序 一 G 8 Program terminated normally ・ 退出 DEBUG 一 Q_ 2. 比较字符串_bjchx_ 编写一程序,比较两个字符串_string1_和 _string2_所含的字符是否相同,若相同则显示‘Match’ ,否则,显 示‘No_Match’ 。 参考程序如下:(程序名:SY3-2.ASM) D_SEG SEGMENT STRING1 DB '12345' STRING2 DB '1a345' MATCHSTR DB 'MATCH$' NOMATCHSTR DB 'NO MATCH$'
(2)汇编程序 汇编程序就是把用汇编语言编写的源程序代码翻译成 计算机能够识别的机器语言的目标模块。这一步由汇编程序 MASM 或 Visual ASM 1.0 里的汇编工具完成。机器只能接收机器码,源程序是 经过汇编后能产生机器码的目标文件,后缀为.OBJ,如果在源程序中有 任何语法错误,宏汇编将会指出。 (3)连接程序 汇编后产生的目标文件,必须经过连接,才能生成可 执行程序.EXE。这一步由连接程序LINK 或Visual ASM 1.0 里的连接工 具完成。 (4)调试程序_ DEBUG_是调试汇编语言程序的工具,它具有跟踪程序 的运行、设置断点、显示修改内存与寄存器的内容等功能,因此在调试 程序中可以寻找错误和修改错误,可以对小段程序进行汇编,也可以对 磁盘进行读写操作。 2.汇编语言集成开发工具 Visual ASM 1.0_ VisualASM_界面标准化, 功能比较强大。该工具可根据个人喜好定制指令、寄存器、操作符、 注释及数字语法着色,可以定制智能缩排,强大的无限次_Undo和_Redo 功能,可定制指令、寄存器、操作符大小写自动切换,直接编译链接运 行,直接进行窗口_debug_调试,另有代码定位功能可以方 便的定位 程序中所有的变量、过程和标号,图形显示的功能使变量的类型一目了 然,此外还有_Visual_ ASM_Wizard_向导自动生成多种
(2)用 MASM 程序汇编源程序_ C>masm_ Microsoft_(R)_Macro_Assembler_Version_5.10_ Copyright_(C)_Microsoft_Corp_1981, 1988._All_rights_reserved._ Source_filename_[.ASM]:SY3-1.ASM_ Object_filename_[PRO.OBJ]:SY3-1_ Source_listing_[NUL.LST]:SY3-1 Cross-reference_[NUL.CRF]:SY3-1_ 49670_+_442762_Bytes_symbol_space_free_ 0_Warning_Errors_ 0_Severe__Errors_ 汇编成功,形成 SY3-1.OBJ、SY3-1.LST、SY3-1.CRF文件。
实验注意事项 1.如果使用的是 MASM5.1 的汇编工具,应包括以下文件:MASM 宏汇 编程序文件 LINK 连接程序文件CREF 索引程序文件(也可不用) EDIT 全屏幕文本编辑程序(或其他文字处理系统) 2.能用宏汇编通过的汇编语言源程序与在 DEBUG状态下运行的汇编 语言程序不同,必须是一个完整的程序,有各逻辑段的定义,而在 DEBUG 状态下运行的汇编语言源程序只是其程序段。 3.连接程序 LINK 是把一个或多个独立的目标程序模块装配成一个 可重定位的可执行文件,扩展名为.EXE。 实验与思考 1. 机器语言(Machine Language)、汇编语言(Assembler Language) 和高级语言(High_Level_ Language)的区别? 2.DOS 2 号功能调用和 DOS 9号功能调用的区别? 3.利用 DEBUG 调试程序过程中,应注意什么?
DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=0000 NV UP EI PL NZ NA PO NC_ 0B75:0000 B033 MOV AL,33 一 T AX=0033 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=0002 NV UP EI PL NZ NA PO NC_ 0B75:0002 B235 MOV DL,35 一 T AX=0033 BX=0000 CX=0011 DX=0035 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=0004 NV UP EI PL NZ NA PO NC_ 0B75:0004 02D0 ADD DL,AL 一 T AX=0033 BX=0000 CX=0011 DX=0068 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=0006 NV UP EI PL NZ NA PO NC_ 0B75:0006_80EA30________SUB_____DL,30_ 一 T AX=0033 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=0009 NV UP EI PL NZ NA PO NC_ 0B75:0009 B402_ MOV_____AH,02
相关主题