实验四

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)的请求。因此软中断和一段子程序十分类似,只是软中断将当前程序中断,执行完中断处理程序后又执行刚被中断的程序。

 

 

 

  

 

 

 

 

 

 

 

 

 

上一篇:Maven解决冲突的方法你都知道吗?一篇文章全总结


下一篇:ASM字节码插桩