第六章循环与分支程序.ppt
文本预览下载声明
第六章 循环与分支程序设计 6.3.1 标号 L33: MOV DL,CL;输出百位 OR DL,30H MOV AH,02H INT 21H MOV CL,0 L2: CMP D,10 JB L22 SUB D,10 INC CL JMP L2 L22: MOV DL,CL;输出十位 OR DL,30H MOV AH,02H INT 21H L1: MOV DX,D;输出个位 OR DL,30H MOV AH,02H INT 21H mov ah,4ch int 21h code ends end start MOV AL,D SUB AL,E MOV F,AL AND AL,0F0H MOV CL,4 SHR AL,CL NEXT: CMP AL,9 JA L1 OR AL,30H JMP L2 L1: ADD AL,37H L2: MOV DL,AL MOV AH,02H INT 21H MOV AL,F AND AL,0FH NEXT2:CMP AL,9 JA L3 OR AL,30H JMP L4 L3: ADD AL,37H L4: MOV DL,AL MOV AH,02H INT 21H 例6.6 求一组无符号数的最大值和最小值,分别放 在存储单元MAX和MIN中。 DATA SEGMENT A DW 349AH,567H,7802H,9031H,0002H,8671H MAX DW ? MIN DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX :;插入程序 MOV AH,4CH INT 21H CODE ENDS END START MOV AX,0 ;AX用于存放最大值 MOV BX,0FFFFH ;BX用于存放最小值 MOV SI,0 MOV CX,6 L1: CMP AX,A[SI] JA L2 MOV AX,A[SI] L2: CMP BX,A[SI] JB L3 MOV BX,A[SI] L3: INC SI INC SI LOOP L1 MOV MAX,AX MOV MIN,BX 6.4 子程序 6.4.1子程序定义 用一对伪指令PROC/ENDP定义一个子程序(过程), 其格式如下: 名称 PROC [NEAR/FAR] RET 名称 ENDP 6.4.2子程序调用与返回 调用子程序用CALL指令,CALL指令将其下条指令 的地址(返回地址)保存在堆栈里,将控制转移到 过程,执行。当执行到RET指令时,RET指令就会 到堆栈里找到由CALL指令保存的返回地址,将控 制返回调用(CALL)指令的下条指令.继续运行。 调用子程序用CALL指令 示意如下: 过程调用(主程序) 过程定义(子程序) 过程名 PROC ┆ ┆ CALL过程名 RET ┆ 过程名 ENDP 6.4.3调用和返回指令 1、CALL(调用)指
显示全部