在D:盘以考生的学号+姓名创建一个考试文件夹ASM,按下面各题的要求将所要创建的文件保存于该文件夹中,答题结束后将文件夹提交到服务器。
一、 实验操作题
1、 将内存单元4000:2000H开始的32个单元的内容全部填充为字符’A’ 。
答题要求:创建一个名为“操作一.DOC”的文件,将本题的操作过程截图到该文中,保存于文件夹。
2、 将标志寄存器的进位标志和溢出标志修改为有进位、有溢出 。 答题要求:创建一个名为“操作二.DOC”的文件,将本题的操作过程截图到该文件中,保存于文件夹。P70
‘
3、 在 内存2000:1000H处开始输入如下指令:
MOV AX,1200 MOV BX,3500
ADD AX,BX 完成指令的反汇编并从2000:1000H运行到2000:1008H处。
答题要求:创建一个名为“操作三.DOC”的文件,将本题的操作过程截图到该文件中,保存于考试夹。
第 1 页 共 6 页
二、程序调试
1、下面程序完成运算:X+Y*Z→M,理解并调试程序,并在指令后的注解括号中填入修正后的正确语句。(10分)
答题要求:在汇编语言编译环境中新建一个名为“调试一.ASM” 的程序,将下面的程序代码复制到该程序中,修改错误语句并在相应的注解括号中填写正确的语句后,保存于文件夹中。
DATAS SEGMENT
X DB B2H ;( X DB 0B2H ) Y DB 40 Z DB 50 M DW ? DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS MOV DS,AX MOV AL,Y MOV CL,Z
MUL AL,CL ;( MUL CL ) MOV BX,AX MOV AL,X
CWD ;( CBW ) ADD AX,BX
MOV M,AX
MOV AL,4CH ;( MOV AH,4CH )
第 2 页 共 6 页
INT 21H
CODES ENDS END START
2、下面程序中X、Y、Z、RESULT是带符号的字变量,程序的功能是:先将X求负,再将X和Y相或,然后对与的结果和Z求平均值,最后将运算结果保存在RESULT单元中。要求开辟200个字节的堆栈空间。理解并调试程序,修正其中的错误,并在指令后的注解括号中填入修正后的正确语句。
答题要求:在汇编语言编译环境中新建一个名为“调试二.ASM” 的程序,将下面的程序代码复制到该程序中,修改错误语句并在相应的注解括号中填写正确的语句后,保存于文件夹中。
DATAS SEGMENT
X DB 1212H ;( DW 1212H ) Y DW 2233 H
Z DW 5678 RESULT DW ? DATAS ENDS
STACKS SEGMENT
DB 200DUP(?) ; ( DB 200 DUP(?) ) STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX MOV AX,X
NEG AX AND AX,Y ADD AX,Z
SHR AX,1 ;( SAR AX,1 ) MOV RESULT,AX MOV AH,4CH
INT 21 ;( INT 21H ) CODES ENDS END START
3、下面程序的功能是: X和Y分别是内存中两个字符串变量,X指向的是”HELLO” ,编程是实现将X指向的字符串复制到Y指向的内存区域。理解并调试程序,修正其中的
第 3 页 共 6 页