文档详情

微机原理与接口技术实验程序.doc

发布:2016-06-06约1.18万字共13页下载文档
文本预览下载声明
微机原理与接口技术实验程序: 实验一:数据传送实验,采用相对寻找方式 MSD??DB LEN DUP(?) EXDA ENDS MYSTACK ?SEGMENT STACK ;定义堆栈段 DW 20 DUP(?) MYSTACK? ?ENDS? CODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START:? MOV AX,DDATA MOV?DS,AX?? ?;装载数据段寄存器 MOV?AX,EXDA MOV?ES,AX ?;装载附加数据段寄存器 MOV?SI,OFFSET MSR MOV DI,OFFSET MSD MOV?CX,LEN MOV BX,0 NEXT: MOV AL,MSR[BX] ?;开始传输数据 MOV ES:MSD[BX],AL INC BX LOOP?NEXT ? PUSH?ES POP??DS?? ?;将附加段寄存器指向的段值赋给数据段寄存器 MOV??DX,OFFSET MSD MOV??AH,9 INT 21H ;显示字符串 MOV? AH,4CH INT 21H ;返回DOS状态 CODE?? ENDS END START 实验二:最大值程序 DATA SEGMENT BUFFER DW 200,-12,45,500,-1000 COUNT EQU ($-BUFFER)/2 MAX DW ? ;用于存放最大值 MES1 DB ‘200,-12,45,78,500,-1000’,0AH,0DH,’$’ DATA ENDS STACK SEGMENT DB 64 DUP(?) TOP EQU $-STACK;计算出堆栈指针数值 STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,SEG DATA MOV DS,AX MOV AX,SEG STACK MOV SS,AX MOV SP,TOP MOV CX,COUNT LEA BX,BUFFER MOV AX,[BX] INC BX INC BX DEC CX AGAIN: CMP AX,[BX] JGE NEXT MOV AX,[BX] NEXT: INC BX INC BX LOOP AGAIN MOV MAX,AX MOV AH,9 LEA DX,MES1 INT 21H QQ1: MOV AH,1 INT 16H JZ QQ1 MOV AH,4C INT 21H CODE ENDS END BEGIN 字符串程序: DATA SEGMENT STRING DB ‘abcduvwxyz’,0DH L1 DB ? CR EQU 0DH DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ S1 DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK BEGIN: MOVE AX,DATA MOV DS,AX MOV ES,AX LEA DI,STRING ;设串的地址指针 MOV DL,0 ;置串长度的初值为0 MOV AL,CR ;串标志送入AL CLD ;清DF=0,使地址自动增量 AGAIN: SCASB ;搜索串 JE DONE ;找到结束标志,停止 INC DL ;串长度加1 JMP AGAIN DONE: LEA BX,L1 MOV [BX],DL ;存串长度 MOV DH,DL ;串长暂存 MOV CL,4 SHR DL,CL ;取串长高4位 MOV AL,DL CALL CHANGE ;将高4位转换成ASCII码放入AL MOV DL,AL MOV AH,2 INT 21H ;显示高4位 MOV AL,DH ;取暂存串长 AND AL,0FH ;取串长低4
显示全部
相似文档