|
50鱼币
本帖最后由 wAterLoo 于 2012-4-1 15:11 编辑
为了让大家重视汇编基础的重要性,而不是走马观花的把教学视频过一遍,特推出基本功大考验,让大家重视基础!!!!!!!!
题目由《王爽汇编语言》检测点6.2改编
这个题目考验大家对,中断机制和堆栈知识的了解
补充:这里还有一个思维的小障碍:lol
原题目:下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传送用栈来进行。栈空间设置在程序内
变化:请在____处填入一个最小的值,使得这段程序能够在debug的调试模式下(请注意,是调试模式),能够正常的用内存0:0~0:15单元中的内容改写程序中的数据,也就是把 数据段 0:0~0:15,的数据 复制到 cs:0~cs:15 中,请认真进行调试,然后写上你的分析过程,没有分析过程的答案即使正确,也不会采纳。
- assume cs:codesg
- codesg segment
- dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
- dw 0,0,0,0,0,0,0,0,0,0
- start: mov ax, codesg ;或mov ax, cs
- mov ss,ax
- mov sp, ____ ; sp的值最小能设置多少?
- mov ax,0
- mov ds,ax
- mov bx,0
- mov cx,8
- s: push [bx]
- pop cs:[bx] ;或 pop ss:[bx]
- add bx,2
- loop s
- mov ax,4c00h
- int 21h
- codesg ends
- end start
复制代码
|
最佳答案
查看完整内容
赞成的顶一下
1.
这题汇编是两个答案:12H和18H.
符合楼主要求的是18H,什么要求?就是那个括号里面的:调试模式.
如果不需要调试,就是12H.(仅限于本程序,程序中没有中断指令且int 21h不影响其结果)
2
为什么?
先从中断机制说起,每条汇编指令执行完后都提供了一个中断的机会(mov ss,ax除外,它和SP赋值是相关联的),这个机会就看我们用不用它了.
如果中断大致会做以下事情:
判断是哪种中断-保存当前信息-跳到对应的处理程序运行 ...
|