这个实验综合了外中断,内中断,应该是全书最精华的一个实验,常常思考整个程序的流程,指导这个流程觉得熟悉、自然。
代码如下:
assume cs:code, ss:stackstack segmentdb 128 dup(0)
stack endscode segment
start:mov ax, stackmov ss, axmov sp, 128push cspop dsmov ax, 0mov es, axmov si, offset int9mov di, 204hmov cx, offset int9end - offset int9cldrep movsbpush es:[9*4]pop es:[200h]push es:[9*4+2]pop es:[202h]climov word ptr es:[9*4], 204hmov word ptr es:[9*4+2], 0stimov ax, 4c00hint 21h;int9---------------------
int9: push axpush bxpush cxpush espush dxin al, 60hmov dl, 'A'pushfcall dword ptr cs:[200h]cmp al, 9ehjne int9retmov ax, 0b800hmov es, axmov bx, 0mov cx, 2000
s: mov byte ptr es:[bx], dlinc byte ptr es:[bx+1]add bx, 2loop sint9ret:pop dxpop espop cxpop bxpop axiret
int9end:nopcode ends
end start
实验结果:
实验体会:
1,思考按一个'a'快速松手,程序的执行流程?
2,思考按‘b’快速松手,程序的执行流程?
3,思考按一个‘a’连续10个后松手,程序执行的流程?
如果学习流于形式和任务,学不好,学不深,更重要的很痛苦~
学习的本身是有乐趣的,如果没有“学而时习之,不亦乐乎”的感觉,这个学习应该出了问题。