MASM 文件名↙
此时,汇编程序会在屏幕上给出提示,一般选择回车键作为回答。
Object filename [文件名.OBJ]:↙
Source listing []:↙
Cross-reference []:↙
如果源程序没有错误,则在屏幕上会显示如下信息:
0 Warning Errors
0 Severe Errors
DOS功能调用的两个子程序,调用方法如下:
(1)设置入口参数
(2)子程序编号送人AH
(3)INT 21H,子程序请求中断指令
有的子程序不需要入口参数,但大多数需要将参数送入指定地方。
MOV DL,\'A\'
MOV AH,2
INT 21H
上面用的程序是DOS系统功能调用的2号子程序,功能是将字符送入屏幕显示。其入口参数是把待输出字符的ASCII码送到DL寄存器中。例如:ASCII码若是0DH,2号子程序处理成回车;ASCII码若是0AH,处理成换行。
MOV AH, 4CH
INT 21H
这是DOS系统功能调用的4CH号子程序,功能是返回操作系统,没有入口参数。
1.实验内容1
(1)实验内容1的流程图,如图1-1所示:
图1-1 内容1流程图
(2)实验内容1的源程序,参考如下:
CODE SEGMENT
ASSUME CS: CODE
START: MOV BX, 0FFFH
MOV CX, 1000
CALL DEC_DIV
MOV CX, 100
CALL DEC_DIV
MOV CX, 10
CALL DEC_DIV
MOV CX, 1
CALL DEC_DIV
MOV AH, 4CH
INT 21H
DEC_DIV PROC NEAR
MOV AX, BX
MOV DX, 0
DIV CX
MOV BX, DX
MOV DL, AL
ADD DL, 30H
MOV AH, 2
INT 21H
RET
DEC_DIV ENDP
CODE ENDS
END START
2.实验内容2
(1)实验内容2的流程图,如图1-2所示:
图1-2内容2流程图
3.实验内容3
(1)实验内容3的流程图,如图1-3所示:
图1-3 内容3流程图
4. 实验内容4
(1)实验内容4的流程图,如图1-4所示:
图1-4 内容4流程图
输出字符‘A’,程序流程图如图0-1所示。
图0-1输出字符‘A’程序流程图
源程序如下:
PROG SEGMENT
ASSUME CS:PROG
MOV DL, \'A\'
MOV AH, 2
INT 21H
MOV AH, 4CH
INT 21H
PROG ENDS
END
1.把BX中的数按位由高到低转化成十进制数,即依次对其除以10000、1000、100、10、1,将获得的商放到 DL中,加30H变成ASCⅡ码,调用DOS系统中断INT 21H的2号功能显示出来;对于每一位十进制数的获得和显示,实验通过编制子程序DEC_DIV并不断调用来实现。
显示,方法与内容1相同;如果为负数,则需要先对其求补,再屏蔽其符号位,相当于得到了这个负数的绝对值。在显示时,先把负号“-”显示出来,其余的显示与正数相同。
3.编程思路是通过将被加数与0相比较,实现分支转移,将正数与负数分别累加到寄存器SI和DI中,并运用内容2显示带符号数的方法,通过调用子程序将其显示出来。其中为了换行,又加了两个2号系统功能调用,分别将换行和回车放到了被显示的两个字中间。
4.16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可。
声明:本站所有文章资源内容,如无特殊说明或标注,均来源于用户上传或互联网资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除,联系方式在页脚,本站核实后会在一个月内进行删除。