西电机电院微机原理上机答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言上机题
姓名:学号:成绩:
实验一、上机过程及DEBUG应用
编写程序,建立数据段DA TA,将你的姓名(汉语拼音)及学号存入DATA数据段的BUFFER1区域,然后利用程序将BUFFER1区域中的字符串(姓名及学号)依次传送到从BUFFER2开始的内存区域中去。
上机过程与要求
1.建立原程序:
源程序文件名为buffer.asm ,源程序清单如下:
data segment
buffer1 db 'hepan04105038'
buffer2 db 13 dup(?)
data ends
code segment
ASSUME CS:CODE,DS:DA TA
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
2.汇编后生成的obj文件名为buffer .OBJ
3.连接后生成的目标文件名为buffer .EXE
4.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 hepan04105038
BUFFER2 14B2 000D ………….
(3)执行程序以后用D命令显示内存区域的相关信息,如表1-3。
表1-3 执行程序之后的数据区内容
变量区段地址值偏移地址变量值(字符串)
BUFFER1 14B2 0000 hepan04105038
BUFFER2 14B2 000D hepan04105038
(4)用R命令检查寄存器的内容如表1-4所示。
表1-4 有关寄存器内容
寄存器名CS DS IP AX BX CX SI DI
内容14B4 14A2 0000 0000 0000 0039 0000 0000
回答问题
a)宏汇编命令MASM的作用是什么?
答:产生OBJ文件。
b)连接命令LINK的作用是什么?连接后生成什么文件?
答:产生EXE文件,生成EXE文件。
c)DEBUG下U命令的作用是什么?
答:反汇编被调试命令。
d)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 WORD
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA1,ES:DATA2,SS:STACK
START: MOV AX , DATA1
MOV DS,AX
MOV AX , DATA2
MOV ES,AX
MOV AX , STACK
MOV SS,AX
MOV AX,OFFSET TOP
MOV SP,AX
MOV SI,OFFSET M2
LEA DI,N2
MOV AL,’5’
MOV AH, 6
MOV BL, M1
MOV BH, [SI]
MOV CL, ES:N1
MOV CH, ES:[DI]
MOV BP,0000H
MOV DX,[BP]
MOV AH,4CH
INT 21H
CODE ENDS
END START
任务1:用EDIT建立源程序,然后汇编、连接生成目标文件。
任务2:在DEBUG下,将上述目标文件调入内存,利用U、D等命令,检查RAM区中的数据,合理使用D 命令,分析所显示的信息并填写表2-1。
任务3:执行程序后, 填写表2—2中各寄存器之值。