实验源程序代码:
1.显示数据区中的一个字符 DATA SEGMENT A DB 'j' DATA ENDS
STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX
MOV DL,A ;取要显示的字符到DL中
MOV AH,2 ;调2号DOS系统功能调用显示一位二进制码 INT 21H
MOV AH,4CH ;利用4CH号DOS系统功能调用退回DOS INT 21H CODE ENDS
END START
请改变第二行的'j'为'6'、存盘、重新编译与连接后运行说明运行结果。再将原来的'j'分别改为'J'、36H后分别说明运行结果,并做解释。读懂本程序。
改'j'为'6'
改'j'为'J'
改'j'为'36H '
2.显示数据区中的一个十进制数字 DATA SEGMENT A DB 8 DATA ENDS
STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX
MOV DL,A ;取要显示的字符到DL中 ADD DL,30H ;将十进制数字变成ASCII码
MOV AH,2 ;调2号DOS系统功能调用显示一位二进制码 INT 21H
MOV AH,4CH ;利用4CH号DOS系统功能调用退回DOS INT 21H CODE ENDS
END START
请分别改变第二行的8为0、9后重新编译并连接后说明运行结果,并做解释。读懂本程序。
不做修改
改8为0
改8为9
3.10以内的加法程序并显示结果 DATA SEGMENT A DB 6 B DB 3 DATA ENDS
STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX
MOV DL,A ;取一个加数到DL中 ADD DL,B ;加另一个加数 ADD DL,30H ;将和变成ASCII码
MOV AH,2 ;调2号DOS系统功能调用显示一位二进制码 INT 21H
MOV AH,4CH ;利用4CH号DOS系统功能调用退回DOS INT 21H CODE ENDS
END START
请改变第三行的3为7后分别说明运行结果,并做解释,为什么会显示一个等号?进一步读懂本程序。
不做修改
改3为7
4.以二进制形式显示一个字符的ASCII码 DATA SEGMENT A DB 'A' B DB '(A)=$'
C DB 'B',0DH,0AH,'$' DATA ENDS
STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX
LEA DX,B ;取“'(A)=$'”首地址到DX中
MOV AH,9 ;利用9号DOS系统功能调用显示 (A)= INT 21H
MOV BL,A ;取要显示的字符到BL中 MOV CL,8 ;循环8次,每次显示一位
NEXT: MOV DL,0 ;2号DOS系统功能调用要求将欲显示的
;字符的ASCII码放到DL中
SAL BL,1 ;欲显示的字符左移一位,移出部分到CF中 RCL DL,1 ;移出到CF中的部分移到DL中
ADD DL,30H ;移入DL的可能是1,也可能是0,变成ASCII码 MOV AH,2 ;调2号DOS系统功能调用显示一位二进制码 INT 21H
DEC CL ;循环次数减1
JNE NEXT ;如果减1后不到0,转NEXT LEA DX,C ;取变量C的首地址到DX中
MOV AH,9 ;利用9号DOS系统功能调用显示单位“B”及回车换行 INT 21H
MOV AH,4CH ;利用4CH号DOS系统功能调用退回DOS INT 21H CODE ENDS
END START
请改变第二行的”A”为“6”、6、36H后分别说明运行结果,并做解释。读懂本程序。 改”A”为“6”
改”A”为6
改”A”为36H
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验1认识性实验在线全文阅读。
相关推荐: