code和data的区别与cseg区别汇编

三、DOS程序段前缀和特殊程序处理程序
1.程序段前缀 PSP
程序段前缀是DOS加载一个外部命令或应用程序时,在程序段之前设置的一个只有256字节的信息区
当DOS把控制权转给外部命令或应用程序时,数据段寄存器DS和附加段寄存器ES均指向PSP,即均含有PSP的段值。
这样应用程序可以方便地使用PSP的有关信息。
2.终止程序的另一途径
利用DOS的4CH号系统功能调用终止程序,把控制权转交到DOS,这是我们现在常用的方法,但早先常利用DOS提供的20H号中断处理程序来中断程序
通过20H号中断处理程序终止程序有一个条件,即进入20H号程序之前,代码段寄存器CS必须含有PSP的段值。由于对EXE类型的应用程序而言,其代码段与PSP不是同一个段值,所以不能简单地直接利用指令INT 20H来终止程序
在PSP的偏移0处,安排了一条INT 20H指令。其机器码为CD20, 于是应用程序只需要跳转到PSP的偏移0处,就能实现程序的终止。
例:显示信息HELLO
SSEG SEGMENT PARA STACK
DW 256DUP(?)
DSEG SEGMENT
MESS DB 'HELLO', 0DH, 0AH, '$'
CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG
MAIN PROC FAR
START: PUSH DS
XOR AX, AX
MOV AX, DSEG
MOV DS, AX
MOV DX, OFFSET MESS
说明: RET后,PSP的段值和偏移送到CS和IP, CPU执行INT 20H,程序结束。
3.应用程序取得命令行参数:
DOS 加载一个外部命令或应用程序时,允许在被加载的程序之后,输入多达127个字符(包含最后的回车符)的参数。并把这些参数送到PSP格式化参数区。即PSP中从偏移80H开始的区域。应用程序可以从PSP中获得命令行参数。
PSP的偏移80H处含命令行参数的长度(字节数),从PSP的偏移81H开始存放命令行参数
命令行参数通常以空格符引导,以回车符结束。
注意:命令行中的重定向符和管道符及有关信息不作为命令行参数送到PSP。
写一个显示命令行参数的程序,先从PSP中把命令行参数传到程序定义的缓冲区中,然后再显示。
; 功能: 显示命令行参数
CSEG SEGMENT
ASSUME CS: CSEG, DS: CSEG
BUFFER DB 128DUP(?)
START: CLD
MOV SI, 80H
MOV CL, AL
XOR CH, CH
MOV DI, OFFSET BUFFER
MOV SI, OFFSET BUFFER
NEXT: LODSB
MOV DL, AL
OVER: MOV AX, 4C00H
二、 对CTRL+C和CTRL+BREAK的处理。
1. CTRL+C的处理程序。
例: 在屏幕上显示用户所按字符,直到用户按ESC键
ESCAPE=1BH
CSEG SEGMENT
ASSUME CS: CSEG, DS: CSEG
START: PUSH CS
COUT: MOV AH, 8
CMP AL, ESCAPE
JZ SHORT XIT
MOV DL, AL
CMP DL, CR
MOV DL, LF
XIT: MOV AH, 4CH
当应用程序利用DOS功能调用进行字符输入输出时,DOS通常检测CTRL+C键。如果检测,那么DOS在遇到CTRL+C后,就先显示字符'C',并产生INT 23H中断,缺省的23H号中断处理程序中止程序的执行。
DOS提供的这一功能便于用户随机地中止一个执行错误或不必必须执行的程序
2.CTRL+BREAK的处理程序
键盘中断处理程序(5号中断处理程序)发现CTRL+BREAK键被按下时,将产生INT 1BH中断,由DOS提供的1BH号中断处理程序将在约定的内存单元中设置一个标志,然后结束。DOS通过该标志检测CTRL+BREAK是否被按下。如果发现被按下时,则像处理CTRL+C那样显示'C'和产生INT 23H
如果应用程序要自己处理CTRL+BREAK键,则可通过提供新的1BH中断处理程序的方法来实现。
所以如果应用程序要使得CTRL+BREAK键不干扰程序运行,只需要使1BH号中断处理程序不设置与DOS约定的内存单元。
但要注意,DOS并不自动保存和恢复1BH中断向量,所以如果应用程序要提供新的1BH中断处理程序, 那么在修改1BH号中断向量前,先要保存原1BH号中断向量,在程序结束前恢复它。
阅读(...) 评论()汇编语言程序设计 第4章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
32页免费26页免费71页免费39页免费49页免费22页免费45页免费7页免费50页免费50页免费
喜欢此文档的还喜欢111页免费27页免费51页免费27页免费48页免费
汇编语言程序设计 第4章|汇​编​语​言​程​序​设​计
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:234.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢第六讲 汇编语言程序设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
51页免费188页免费65页免费73页免费44页免费31页免费4页免费24页免费118页1下载券4页免费
喜欢此文档的还喜欢34页7下载券48页免费2页1下载券21页7下载券16页免费
第六讲 汇编语言程序设计|汇​编​语​言​程​序​设​计​P​P​T
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:168.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢汇编语言及编程N_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
81页免费81页2下载券81页2下载券81页免费81页免费17页1下载券72页免费28页免费46页1下载券5页1下载券
喜欢此文档的还喜欢3页免费3页免费8页免费
汇编语言及编程N|微​机​课​件
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:756.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢汇编语言第4章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
45页1下载券33页免费83页免费59页免费33页1下载券34页免费69页1下载券41页免费5页免费
喜欢此文档的还喜欢5页1下载券11页1下载券40页免费29页7下载券7页7下载券
汇编语言第4章|汇​编​语​言​ ​课​件
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:172.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 code和data的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信