第4讲8086汇编程序设计.ppt
文本预览下载声明
*/96 */96 IBM PC的BIOS调用和DOS系统功能调用 对8086系列机来说,MS-DOS操作系统是最主要的操作系统。它设置了一些功能调用模块,完成对文件、设备、内存的管理。对用户来说,这些功能模块就是几十个独立的中断服务程序,这些程序的入口地址已经由系统置入中断矢量表中,在汇编语言源程序中可以用软中断指令INT n指令直接调用。称为功能调用。 对某些设备的操作,既能使用DOS中断又能使用BIOS中断,但有些功能两者不能替代。一般情况下尽可能使用DOS中断,必要时再使用BIOS中断,BIOS更接近硬件。 */96 1. DOS中断:DOS中断类型号是20H~3FH,为用户程序和系统程序提供磁盘读写、程序退出、系统功能调用等功能。常用软中断功能及参数见表5.1。(教材中) DOS中断和系统功能调用 */96 DOS所有的功能调用都是利用INT 21H中断指令实现的,每个功能调用对应一个子程序,并有一个编号,其编号就是功能号。其为程序员提供了上百种系统服务功能。 (1) 系统功能调用的方法如下: ① 将入口参数传送到指定寄存器中;入口参数是子程序运行所需要的数据,少数功能调用也可以没有入口参数。 ② 子程序功能号送入AH寄存器中; ③ 使用INT 21H指令。 系统功能调用INT 21H */96 系统功能调用INT 21H 常用的DOS系统功能调用 单字符输入(1号调用) 单字符显示(2号调用) 打印输出(5号调用) 结束调用(4CH号调用) 显示字符串(9号调用) 字符串输入(10号调用) */96 ① 单字符输入(1号调用) 格式:MOV AH,1 INT 21H 功能:从键盘输入字符的ASCII码送入寄存器AL中,并送显示器显示。 2.单字符显示(2号调用) 格式:MOV DL,待显示字符的ASCII码 MOV AH,2 INT 21H 功能:将DL寄存器中的字符送显示器显示,如果DL中为〈CTRL〉+〈BREAK〉的ASCII码,则退出。 ①~② 单字符输入输出 */96 例5.12 编程从键盘输入一个字符,送屏幕显示。 MOV AH,1 ;从键盘输入一个字符到(AL)中 INT 21H MOV DL, AL MOV AH,2 ;将(DL)中数据送屏幕显示 INT 21H 单字符输入输出举例 */96 ③打印输出(5号调用) 格式:MOV DL,待打印字符的ASCII码 MOV AH ,5 INT 21H 功能:将DL寄存器中的字符送打印机打印。 ④结束调用(4CH号调用) 格式:MOV AH,4CH INT 21H 功能:终止当前程序并返回调用程序。 ③ ~④ 打印输出和结束调用 */96 ⑤显示字符串(9号调用) 格式: LEA DX,待显示字符串首偏移地址 MOV AH,9 INT 21H 功能:将当前数据区中以‘$’结尾的字符串送显示器显示。 入口参数:DS∶DX指向缓冲区中字符串首址,字符串必须以“$”字符作为结束标志。 ⑥字符串输入(10号调用) 格式: LEA DX,缓冲区首偏移地址 MOV AH,10 INT 21H 功能:从键盘上输入一字符串(以回车键作为结束符)到用户定义的输入缓冲区中。 入口参数:DS:DX=输入缓冲区首地址(其中第一字节为实际长度,第二字节为输入的字符数,第三字节为输入字符串的首址) ⑤ ~⑥字符串输入和显示 */96 本讲小结 1. 熟悉汇编语言的基本格式: [标号:/变量] 操作符 操作数 [;注释] 2. 掌握常用表达式的计算方法,会编写基本的汇编程序 3. 熟悉DB、DW、DD、ORG、END等伪指令的使用方法。 4. 掌握过程和宏的定义和使用方法。 5. 了解汇编程序的顺序、分支、循环和子程序的编写方法,可以编写一般的单模块汇编程序。 首页 * 欢迎辞 * * * * * * * * * * * * * * * * * * * * */96 CWD ;(V)符号扩展 SUB AX,CX SBB DX,BX ;(DX:AX)-(BX:CX)→(DX:AX) IDIV X ;(DX:AX)/X MOV W,AX ;商→W MOV W+2,DX ;余数DX→W+2 MOV AH,4CH ;返回DOS INT 21H CODE ENDS ; END START 例:源程序(3): 2. 分支程序设计方法 程序的分支一般用条件转移指令来产生,利用转移指令不影响条件码的特性,连续地使用条件转
显示全部