2022年2022年汇编语言程序设计上机练习及简单程序设计 .pdf
第四章 汇编语言程序设计上机练习及简单程序设计一、实验目的 1、掌握常用工具软件 EditPlus,MASM 和LINK的使用。2、伪指令 : SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。3、利用的 1 号功能实现键盘输入的方法。4、了解 .EXE文件和 .COM 文件的区别及用INT 21H 、INT 4CH号功能返回系统的方法。二、实验例题程序 : data segment message db This is a sample program of keyboard and disply db 0dh,0ah,Please strike the key!,0dh,0ah,$ data ends stack segment para stack stack db 50 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h again: mov ah,1 int 21h cmp al,1bh je exit cmp al,61h jc nd cmp al,7ah ja nd and al,11011111b nd: mov dl,al mov ah,2 int 21h jmp again exit: mov ah,4ch int 21h code ends end start 实验步骤 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 1、用用文字编辑工具(记事本或EDITPLUS )将源程序输入, 其扩展名为 .ASM。2、用 MASM 对源文件进行汇编, 产生 .OBJ文件和 .LST文件。若汇编时提示有错, 用文字编辑工具修改源程序后重新汇编, 直至通过。C:Documents and Settings?cd masm C:Documents and Settings?MASMmasm 123 Microsoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Object filename 123.OBJ: Source listing NUL.LST: Cross-reference NUL.CRF: 50802 + 450670 Bytes symbol space free 0 Warning Errors 0 Severe Errors C:Documents and Settings?MASM 3、用 LINK将 .OBJ文件连接成可执行的.EXE文件。C:DOCUME1?MASMlink 123 Microsoft (R) Overlay Linker Version 3.60 Copyright (C) Microsoft Corp 1983-1987. All rights reserved. Run File 123.EXE: List File NUL.MAP: Libraries .LIB: C:DOCUME1?MASM 4、在 DOS 状态下运行 LINK产生的 .EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符, 但小写字母被改成大写。按ESC 键可返回 DOS 。若未出现预期结果 , 用DEBUG 检查程序。C:DOCUME1?MASM123.exe This is a sample program of keyboard and display Please strike the key! aASS11-bBC:DOCUME1?MASM 三、实验练习1. 利用查表方法把DX的内容 (16 进制数 ) 转换成 ASCII 码,保存到 100H开始的内存单元中;aa SEGMENT ORG 100H str1 DB 4 DUP (?) aa ENDS code SEGMENT ASSUME CS:code DS:aa start: MOV AX,aa 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - MOV DS,AX LEA SI, str1 MOV CH, 4 MOV CL, 4 next: ROL DX, CL AND DL, 0FH ADD DL, 30H CMP DL, 39H JLE print ;若 DL 小于或等于39H,则为数字,可以直接存ADD DL, 07H ;DL 的内容为字母,则要加07H,才可以存print: MOV SI ,DL INC SI DEC CH JNZ next MOV AH, 4CH INT 21H ;返回 DOS code ENDS END start 2. 数据串搬家程序: 把内存单元100H 开始的 10H个字节 剪切 到 200H开始的内存单元中;bb SEGMENT ORG 200h Y DB 16 dup (?) bb ENDS cc SEGMENT ASSUME CS:cc, ES:bb start: CLD MOV SI , 100H MOV AX , SEG Y MOV ES , AX MOV DI ,OFFSET Y MOV CX , 16 REP MOVSB ;把内存单元100H 开始的 10H 个字节 剪切 到 200H开始的内存单元中;MOV AH , 4CH INT 21H cc ENDS END start 四、实验小结:1、通过本次试验掌握常用工具软件EditPlus、 MASM和 LINK的使用。2、掌握了伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的功能。3、会利用功能号实现DOS 系统功能调用的方法。4、 了解了 .EXE 文件和 .COM 文件的区别及用INT 21H 、 INT 4CH号功能返回系统的方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -