西电机电院微机原理上机答案.doc
文本预览下载声明
汇编语言上机题
姓名: 学号: 成绩:
实验一、上机过程及DEBUG应用
编写程序,建立数据段DATA,将你的姓名(汉语拼音)及学号存入DATA数据段的BUFFER1区域,然后利用程序将BUFFER1区域中的字符串(姓名及学号)依次传送到从BUFFER2开始的内存区域中去。
上机过程与要求
建立原程序:
源程序文件名为buffer.asm ,源程序清单如下:
data segment
buffer1 db hepa buffer2 db 13 dup(?)
data ends
code segment
ASSUME CS:CODE,DS:DATA
START:
mov ax,data
mov ds,ax
mov es,ax
lea si,buffer1
lea di,buffer2
mov cx,0d
cld
rep movsb
mov ah,4ch
int 21h
code ends
end start
汇编后生成的obj文件名为 buffer .OBJ
连接后生成的目标文件名为 buffer .EXE
DEBUG调试:在DEBUG下,利用U、D、G、R等命令对EXE文件进行调试后,相关信息如下:
(1)表1-1 反汇编清单中所反映的相关信息
段地址 偏移地址 机器码 助记符 第一条指令 14B4 0000 B89D14 MOV AX,14B2 第二条指令 14B4 0003 8ED8 MOV DX, AX 最后一条指令 14B4 001E D1E3 SHL BX,1 *注:最后一条指令是对应于代码段中最后一条指令
(2) 在未执行程序之前,用D命令显示内存区域BUFFER1及BUFFER2中的内容,
其相关信息如表1-2所示。
表1-2 未执行程序之前的数据区内容
变量区 段地址值 偏移地址 变量值(或字符串) BUFFER1 14B2 0000 hepa BUFFER2 14B2 000D ………….
(3)执行程序以后用D命令显示内存区域的相关信息,如表1-3。
表1-3 执行程序之后的数据区内容
变量区 段地址值 偏移地址 变量值(字符串) BUFFER1 14B2 0000 hepa BUFFER2 14B2 000D hepa
(4)用R命令检查寄存器的内容如表1-4所示。
表1-4 有关寄存器内容
寄存器名 CS DS IP AX BX CX SI DI 内容 14B4 14A2 0000 0000 0000 0039 0000 0000
回答问题
宏汇编命令MASM的作用是什么?
答:产生OBJ文件。
连接命令LINK的作用是什么?连接后生成什么文件?
答:产生EXE文件,生成EXE文件。
DEBUG下U命令的作用是什么?
答:反汇编被调试命令。
DEBUG下D命令的作用是什么?
答:显示内存单元的内容。
e) 在DEBUG下如何执行.EXE文件,写出执行命令的常用格式。
答:DEBUG NAME.EXE。
实验二、寻址方式练习
掌握8086/8088的寻址方式是学习汇编语言的基础,因此,我们以数据传送指令为例编写了下面的程序,通过该程序对主要的几种寻址方式进行练习。
DATA1 SEGMENT
M1 DB 0A0H,0A1H,0A2H,0A3H,0A4H,0A5H
M2 DB 0A6H,0A7H,0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0AEH,0AFH
DATA1 ENDS
DATA2 SEGMENT
N1 DB 0B0H,0B1H,0B2H,0B3H, 0B4H,0B5H
N2 DB 0B6H,0B7H, 0B8H,0B9H,0BAH,0BBH, 0BCH,0BDH,0BEH,0BFH
DATA2 ENDS
STACK SEGMENT PARA STACK ‘STACK’
DB 0C0H,0C1H,0C2H,0C3H, 0C4H,0C5H
DB 0C6H,0C7H, 0C8H,0C9H,0CAH,0CBH, 0CCH,0CDH,0CEH,0CFH
DW 100 DUP (?TOP LABEL
显示全部