硬件基础(第4章)课件.ppt
文本预览下载声明
P112例4.14,利用DOS功能实现人机对话 DATA SEGMENT MESS1 DB ‘WHAT IS YOUR NAME?’,’$’ ;定义显示字符串 MESS2 DB ‘HOW OLD ARE YOU?’,’$’ BUF1 DB 20,0,20 DUP(?) ;定义输入字符串缓冲区 BUF2 DB 15,0,15 DUP(?) DATA ENDS STACK1 SEGMENT ‘STACK’ DB 100 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START PROC FAR PUSH DS MOV AX,0 PUSH AX MOX AX,DATA MOV DS,AX 多分支结构程序设计例:教材P95例4.7 DATA SEGMENT DAT DB ? BUF DW ADR00 DW ADR01 … DW ADRFF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,DAT ;设AL中放有入口参数 MOV AH,0 ADD AX,AX MOV BX,OFFSET BUF ADD BX,AX MOV CX,[BX] JMP CX ADR00:… ADR01:… … ADRFF:… CODE ENDS END START 循环程序设计例:找N个无符号数最大值教材P97例4.9 DATA SEGMENT BUF DB 12H,34H,0A7H,9FH … DB 74H,88H,01H,0C8H MAX DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF MOV CX,N-1 ;比N-1次 MOV AL,[SI] LP1: CMP AL,[SI+1] JNC LP2 MOV AL,[SI+1] ;C为1,则AL小,用较大的取代 LP2: INC SI LOOP LP1 MOV MAX, AL MOV AH, 4CH INT 21H CODE ENDS END START 多重循环程序设计例:找0的个数教材P98例4.10 DATA SEGMENT BUF DB 12H,34H,0A7H,9FH,… RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI, BUF MOV CX,80 ;共80个字节 MOV BX,0 ;存放结果 LP1: MOV DH,8 ;移位次数 MOV AL,[SI] LP2: ROR AL,1 JC NEXT INC BX ;C为0,则移出的为0,BX加1 NEXT: DEC DH JNE LP2 INC SI LOOP LP1 MOV RESULT,BX MOV AH,4CH INT 21H CODE ENDS END START 子程序设计例:求和,并以二进制显示教材P101例4.11 DATA SEGMENT NUM DB 1234H,5678H,2957H SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX LEA BX, NUM;用BX传递存储器地址参数 CALL ADDSUB;求和结果在CX中 L1: MOV SUM, CX CALL DISP ;CX将和传递给子程序显示 L2: MOV AH, 4CH INT 21H ADDSUB PROC NEAR MOV CX, 0 ADD CX, [BX] ADC CX, [BX+2] ADC CX, [BX+4]
显示全部