1、实验任务1
(1)task1.asm源码:
(2)line31-line34的4条inc指令,能换成如下代码。因为本实验中仅循环8次,且si和di中初始值均为0,每次si和di中的数值+2,尽管最后一次循环中si和di进位会影响到CF标志位,但在此之前所有的 加法工作均已经完成,所以不会影响到最后的结果。
(3)在debug中调试,观察数据段中做128位加之前和之后,数据段的值的变化,
加之前:
加之后:
2、实验任务2
(1)程序task2.asm源码:
(2)运行测试截图:
(3)回答问题
1)line11-18实现的功能为:从键盘上输入一串字直到遇到字符'#'。
2)line20-22实现的功能为:0ah是换行字符的ascii码,因此作用为在屏幕上换行。
3)line24-30实现的功能为:输出刚刚输入的直到字符'#'前的一串字符到屏幕上。
3、实验任务3
(1)task3.asm源码:
(2)运行测试截图:
4、实验任务4
(1)task4.asm源码:
(2)在debug中调试截图(call strupr调用之前,数据段的值,以及调用之后数据段的值)
调用之前:
调用之后:
5、实验任务5
(1)task5.asm源码:
(2)运行测试截图(输入7,以及输入其他字符,运行结果截图):
(3)程序的功能:从键盘输入一个字符,若为'7'则在屏幕第24行70列输出"yes",否则输出"no"。
6、实验任务6
(1)运行结果截图:
中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。
根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。
软中断是由当前运行的代码(或进程)产生的,这种中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求。因此软中断和一段子程序十分类似,只是软中断将当前程序中断,执行完中断处理程序后又执行刚被中断的程序。