如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
本次课的内容与要求四、DOS功能调用DOS计算机硬件(硬盘、显示器、串口……)DOScommand软件中断I/O操作每个子程序对应有一个调用功能号优点调用方法参数常用DOS功能调用例子MOVAX,STACKMOVSS,AXMOVSP,TOPDIAP:MOVDX,OFFSETMESGMOVAH,09;9号调用显示提问信息INT21HKEYBOD:MOVDX,OFFSETPARSMOVAH,10INT21H;等待从键盘上输入应答信息RET;返回DOS操作系统STARTENDPCODESENDSENDBEGIN建立一个目标文件,获得文件号将一个已存在的文件复制成另一个文件CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASP,TOPLEADX,DFILEMOVCX,0MOVAH,3CHINT21HMOVD_HANDLE,AX;建立目的文件。LEADX,SFILEMOVAX,3D00HINT21HMOVS_HANDLE,AX;打开源文件。MOVBX,AXMOVDX,0MOVCX,0MOVAX,4202HINT21H;移动文件指针至文件尾。JBDONEMOVWORDPTRS_ENDP,AXMOVWORDPTRS_ENDP+2,DX;取源文件的末尾指针。MOVAX,4200HINT21H;移动文件指针至文件首。JBDONEMOVWORDPTRS_NOW,AXMOVWORDPTRS_NOW+2,DX;取源文件的首指针。AGAIN:MOVCX,1024MOVAX,3F00HLEADX,DBUFINT21H;将源文件读入DBUF块中。MOVCX,AXMOVBX,D_HANDLELEADX,DBUFMOVAX,4000HINT21H;将DBUF块中数据写入目的文件。MOVBX,S_HANDLEMOVDX,0MOVCX,0MOVAX,4201HINT21H;获取源文件当前指针。JBDONECMPDX,WORDPTRS_ENDP+2JBAGAINCMPAX,WORDPTRS_ENDPJBAGAIN;当前指针小于末尾指针则继续,;否则结束。(1)从键盘输入一个字符MOVAH,1INT21H执行该调用时将等待键入,一旦有键按下就将该按键字符的ASCII码读入AL,并同时显示该字符。(2)显示一个字符MOVDL,<待显示字符的ASCII码>MOVAH,2INT21H本调用执行后,显示器显示一个指定的字符。(3)显示一个字符串MOVDX,<待显示字符串的首偏移地址>MOVAH,9INT21H显示器显示待显示的字符串。执行前要在DS数据段定义以‘$’结尾的字符串。ERR_MSG1DB‘PLEASEINPUTANOTHERNUMBER!$’从键盘输入一串字符并存入用户指定的缓冲区。LEADX,<字符串缓冲区首地址>MOVAH,0AHINT21H若用户键入的字符数≥定义的N1,本功能调用将不再接收新的键入,且光标不再向右移动。例:设在数据段定义键盘缓冲区如下:STR1DB10,?,10DUP(?)调用DOS功能0AH号功能的程序段为:LEADX,STR1MOVAH,0AHINT21H此程序段最多从键盘接收10个按键例:将键入的4位十进制数(如5,则键入0005)以压缩BCD数形式存入字变量SW中。IBUFDB5,0,5DUP(?)MOVDX,OFFSETIBUF;10号功能调用,输入一个字符串MOVAH,10INT21HMOVAX,WORDPTRIBUF+4;键入数的个位和十位送AXANDAX,0F0FH;ASCII码变非压缩BCD数MOVCL,4SHLAL,CL;将10位移至AL的高4位ORAL,AH;将10位和个位拼合在AL中MOVBYTEPTRSW,AL;存BCD数字的十位和个位MOVAX,WORDPTRIBUF+2;键入数的百位和千位送AXANDAX,0F0FH;ASCII码变非压缩BCD数SHLAL,CL;将千位移至AL的高4