汇编语言程序设计实验
- 格式:docx
- 大小:1.07 MB
- 文档页数:33
目录
目录 (1)
实验一利用DEBUG熟悉常用指令的使用 (2)
一、实验目的 (2)
二、示例 (2)
三、实验题 (2)
实验二汇编程序和连接程序的使用 (6)
一、实验目的。 (6)
二、示例。 (6)
三、实验题。 (8)
实验三顺序结构程序设计 (11)
一、实验目的 (11)
二、示例 (11)
三、实验题 (12)
四、实验报告 (15)
实验四循环结构程序设计 (16)
一、实验目的 (16)
二、示例 (16)
三、实验题 (18)
实验五分支结构程序设计 (21)
一、实验目的 (21)
二、示例 (21)
三、实验题 (22)
实验六子程序设计 (29)
一、实验目的 (29)
二、实验题 (29)
实验一利用DEBUG熟悉常用指令的使用
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、示例
请分别用一条汇编语言指令完成如下功能:(过程略)。
1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
ADD AL,[BX][SI]
2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。
ADD WORF PTR [0520H],3412H
三、实验题
1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步
P执行,观察执行结果。
(设置存储器的值)
①.MOV AX,1200H
②.MOV AX,BX
③.MOV AX,[1200H]
④.MOV AX,[BX]
⑤.MOV AX,1100[BX]
⑥.MOV AX,[BX][SI]
⑦.MOV AX,1100[BX][SI]
⑧ .MOV AX,[BP+SI+04]
2、上机调试、验证教材习题3.15。单步执行、观察运行结果并与自己的判断进行比较。(1)1234
(2)4321
(3)CFA0
(4)9D60
实验二汇编程序和连接程序的使用
一、实验目的。
熟悉汇编语言的上机环境,学习EDIT,MASM,LINK程序的使用,掌握建立、汇编、链接、运行汇编语言程序的过程。
二、示例。
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。上机步骤如下:1、调用 程序建立汇编语言源程序.ASM
建立好的源文件以EX_1.ASM为文件名存盘
DATA SEGMENT
STRING1 DB 'Visual Basic'
STRING2 DB 'Visual Basic'
COUNT EQU $-STRING2
MESS1 DB 'MATCH!',13,10,'$'
MESS2 DB 'NO MATCH!',13,10,'$'
DATA ENDS
code segment
assume cs:code,ds:data,es:data
main proc far
start::
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov es,ax
;main program
mov cx,count
lea si,string1
lea di,string2
cld
repz cmpsb
jz mes1 mov dx,offset mess2 jmp disp0
mes1:mov dx,offset mess1 disp0: mov ah,9
int 21h exit: ret main endp code ends
end start修改字符串,使其不同,并对以上源程序重新汇编、连接、运行,结果输出为:NO MATCH!
修改前:
修改后:
三、实验题。
1、上机完成以上示例程序。
2、完成课堂例题,并用DEBUG运行,观察结果。data segment
X db 6
Y db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data mov ds,ax mov al,x mov y,5
add y,al mov ah,4ch int 21h code ends end start 程序: