至诚汇编语言 序设计.ppt
文本预览下载声明
第五章 程序设计基础 第五章 程序设计基本技术 一、系统功能子程序的调用 二、汇编语言程序开发 三、循环程序设计 四、子程序设计 一、系统功能子程序的调用 DOS功能子程序的调用 调用格式:MOV CX/DX[DL],参数 MOV AH,功能号 INT 21H DOS功能调用表(续) BIOS功能子程序的调用 调用格式:MOV AH,功能号 INT n 通过软中断方式调用外部设备管理程序。 中断指令格式: INT n 执行操作:PUSH PSW, 0→TF、IF, PUSH CS,PUSH IP,入口地址→CS、IP; 调用格式: 送入口参量到指定寄存器 功能号→AH INT n 二、汇编语言程序开发 例1(6-2)用查表的方法将一位十六进制数转换成ASCII码; DATA SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H HEX DB 4 ;待转换的一位十六进制数 ASCI DB ? ;存放转换的ASCII码值 DATA ENDS STACK1 SEGMENT PARA STACK STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX LEA BX,TABLE ;表的首地址 XOR AH,AH MOV AL,HEX ADD BX,AX ;确定查表位置 MOV AL,[BX] ;查表 MOV ASCI,AL ;存结果 MOV AH,4CH ;返回dos INT 21H COSEG ENDS END START 上机实验题目(一)顺序程序设计 要求: 将两个无符号数X1和X2进行加法处理,和放在SUM中。 X1 DB…. X2 DB…. SUM DW ….. 三、循环、分支程序设计 (一)、循环程序结构流程 (二)、分支程序设计 1、无条件转移 基本格式:JMP TARGET 2、条件转移流程 例2(6-22) 设某存储区有一数组ARRAY,现要求对数组中数据分别按正数(含0)和负数的绝对值累加,并统计正数和负数的个数。累加和与统计个数分别存入SUM1、SUM2、CUNT1和CUNT2单元中。 TITLE EXAMPLE-6-22 DATA SEGMENT ARRAY DB 12,34,56,-12,-34,-9,0,3,0,-5,3,5 DB 0AH,0FFH,4,0,77H,88H,0F0H,0BBH COUNT EQU $-ARRAY SUM1 DW 0 ;存正数累加和 SUM2 DW 0 ;存负数累加和 CUNT1 DB 0 ;存正数数据个数 CUNT2 DB 0 ;存负数数据个数 DATA ENDS STACK1 SEGMENT PARA STACK STA DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX XOR AX,AX XOR BX,BX XOR CX,CX XOR DX,DX LEA SI,ARRAY MOV CL,COUNT LOP: TEST BYTE PTR [SI],80H JE PLUS MOV CH,[SI] ; 求负数绝对值 NEG CH ADD BL,CH ; 负数绝对值累加 ADC BH,0 INC DL ; 个数计数
显示全部