西南交大微机原理实验代码与截图(ALL).doc_第1页
西南交大微机原理实验代码与截图(ALL).doc_第2页
西南交大微机原理实验代码与截图(ALL).doc_第3页
西南交大微机原理实验代码与截图(ALL).doc_第4页
西南交大微机原理实验代码与截图(ALL).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2-1DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV SI,3500H ;设置待转换数据区的地址指针 MOV DI,3510H ;设置结果数据区的地址指针 MOV BX,000AH ;乘数10 MOV CX,0004H ;循环4 次 MOV AH,00H MOV AL,SI ;取第一位ASC码 SUB AL,30H ;转换成二进制数 A1:IMUL BX ;乘10 ADD AL,SI+01 ;加次位 SUB AL,30H INC SI ;修改地址指针 LOOP A1 ;循环 MOV DI,AX ;保存结果 INT 3H ;此处输入代码段代码 MOV AH,4CH INT 21HCODES ENDS END START2-2DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV CX,0005H ;循环计数器赋初值 MOV DI,3500H ;ASC码首址A1: MOV BL,0FFH ;将错误标志送入BL MOV AL,DI ;送ASC码至AL CMP AL,3AH ;比较AL 与3A JNB A2 ;不低于3A 则转A2 SUB AL,30H ;低于3A 则取ASC码低4 位 JB A2 ;低于30 则转A2 MOV BL,AL ;否则AL 内容送入BL,取代FFA2: MOV AL,BL ;结果或错误标志送入AL MOV DI+0AH,AL INC DI LOOP A1INT 3HCODES ENDS END START2-5DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,0B07H MOV DS,AX MOV DI,3000H MOV DX,9111H MOV CX,2222H TEST DH,80H JZ LP XOR DX,7FFFH NOT CX ADC CX,1 ADC DX,0 LP: MOV DI,CL MOV DI+1,CH MOV DI+2,DL MOV DI+3,DH INT 3INT 3HCODES ENDS END START3DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV CX,10H MOV SI,3000H MOV DI,3010H CMP SI,DI JA A2 ADD SI,CX ADD DI,CX DEC SI DEC DIA1: MOV AL,SI MOV DI,AL DEC SI DEC DI DEC CX JNE A1 JE A3 A2: MOV AL,SI MOV DI,AL INC SI INC DI DEC CX JNE A2A3: INT 3HCODES ENDS END START4-1DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV DX,01H MOV BL,02HA1: MOV AL,BL INC BL MUL BL ADD DX,AX CMP AX,0C8H JBE A1 INT 3H CODES ENDS END START4-2DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV DI,3000H MOV CX,DI MOV CH,00H MOV BL,00H INC DIA1: MOV AX,DI CMP AX,0000H JGE A2 INC BLA2: INC DI LOOP A1 MOV DI,BL INT 3H CODES ENDS END START5-1DATAS SEGMENT AA DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAS,SS:STACKSSUB1 PROC NEAR CMP CX,0 JE A4 DEC CX MOV BH,SI MOV BL,BH A1:INC SI MOV AL,SI CMP AL,BH JAE A2 CMP AL,BL JBE A3 JMP A4 A2:MOV BH,AL JMP A4 A3:MOV BL,AL A4:LOOP A1 RET SUB1 ENDP START:MOV AX,DATAS MOV DS,AX MOV SI,OFFSET AA MOV CX,0008H CALL NEAR PTR SUB1 MOV AH,BH MOV AL,BL INT 3 CODE ENDS END START实验6DATAS SEGMENT ORG 3000H VAR DB 11H,0d3H,77H,6bH,0BH,33H,0aaH,21H,0ffH,67H ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT DW 100 DUP(?) ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV CX,000AH MOV SI,300AHMOV BL,0FFHA1:CMP BL,0FFH JNE A4 MOV BL,00H DEC CX CMP CX,0 JE A4 PUSH SI PUSH CXA2:DEC SI MOV AL,SI MOV DL,SI-1 CMP AL,DL JA A3 MOV SI-1,AL MOV SI,DL MOV BL,0FFHA3:LOOP A2 POP CX POP SI JMP A1A4:INT 3 ;此处输入代码段代码 MOV AH,4CH INT 21HCODES ENDSEND START实验七DATAS SEGMENT ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT START:MOV AL,0 MOV BH,0AH ;表示前景、背景颜色 MOV AH,6H MOV CX,0 MOV DH,24 MOV DL,79 INT 10H ;清屏幕 MOV AH,2 MOV BH,0 MOV DH,10H MOV DL,10H INT 10H ;光标设置在第10行第10列 MOV CX,001AH ;共26个字母,所以循环次数为26 MOV DL,Z LP:MOV AL,DL MOV BH,0 MOV BL,2FH ;设置显示的A到Z的底色和字色 MOV AH,9 INT 10H DEC DL LOOP LP INT 3CODES ENDS END START实验八.486pd8255macroport,data1movdx,portmoveax,data1outdx,eaxnopnopendmdatasegment at 0 use16org1*4v1dw2 dup(?)org2*4v2dw2 dup(?)org3*4v3dw2 dup(?)org1000htttdb?stackpequ2000hP255CWequ20CHP255Aequ200HP255Bequ204HP255Cequ208Hdataendscodesegment use16assumecs:code,ds:data,ss:dataorg1100hstart:nopmovax,0movds,axmovss,axmovsp,stackpiniti:moveax,60000000hmovcr0,eaxmovax,datamovds,axmovss,axmovsp,stackpmovcx,1000i0:deccxjnzi0d8255P255CW,80808080hi1:d8255P255A,0c099c099hd8255P255B,0c0c0c0c0h ;40004000d8255P255C,0fafafafah ;绿calldel1d8255P255C,0f5f5f5f5h ;红calldel1d8255P255C,0f0f0f0f0h ;黄calldel1d8255P255C,0ffffffffh ;灭calldel1d8255P255A,8ef8c0c0hd8255P255B,8E8ec0c0h ;00007FFFd8255P255C,0fafafafahcalldel1d8255P255C,0f5f5f5f5hcalldel1d8255P255C,0f0f0f0f0hcalldel1d8255P255C,0ffffffffhcalldel1movax,4000hmoves,axmoveax,0chk:movbx,0000h ;从4000:0000单元开始写moves:bx,eaxmovdx,P255Aoutdx,eaxnopnopmovdx,P255Boutdx,eaxnopnoppusheax ;写入的数据入栈moveax,0fafafafahmovdx,P255C ;绿色outdx,eax call del1popeax ;出栈chk1:addbx,4 ;cmpbx,8000hjzchk2 ;写满8000H个内存单元moves:bx,eaxjmpchk1 ;chk2:movbx,0fffchchk3:addbx,4cmpbx,8000hjzchk0cmpeax,es:bx ;把每个单元的数据读出与写入的jzchk3movecx,eax ;数据比较,是否正确moveax,0f5f5f5f5hmovdx,P255C ;不正确,颜色变成红色outdx,eaxmoveax,ecxcalldel1 ;延时chk0:addeax,01010101h ;cmpeax,0ffffffffh ;下一个写入的数据jzchk4 ;jmpchkchk4:jmpi1del1proc ;延时movecx,8ffffhi2:dececxjnzi2retendpcodeendsendstart实验10.1:(以key为原本改进).486DATA SEGMENT AT 0 USE16ORG 1000HDATA ENDSCODESEGMENT USE16ASSUMECS:CODE ORG3000HBEG: JMPSTARTTAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FHDPORT1 EQU360HDPORT2 EQU380HNUM DB 0001HCOUNT DD00000FFFFHSTART:MOVAX,DATAMOVDS,AX MOVCL,5KK: MOVAL,CL MOVBX,OFFSET TABXLATTABMOVDX,DPORT2OUTDX,AL NOPMOVDX,DPORT1 MOVAL,NUM OUTDX,ALNOPNOPROLNUM,1MOVCOUNT,00000FFFFHDELAY:NOPDECCOUNTJNZDELAYJMPKKCODE ENDSEND BEG实验10.2使显示20115158.486DATASEGMENT AT 0 USE16 ORG 2000HBUFDD?COUNTDB?DB?DATAENDSCODESEGMENT USE16ASSUMECS:CODE,DS:DATA ORG 01000HBEG:JMPSTARTTAB1DB0A4H,0F9H,92H,92HTAB2DB0C0H,0F9H,0F9H,80HRGDD050A050AHGRDD0A050A05HRYDD05000500HYRDD00050005HRRRR DD 05050505HRGYR DD 050A0005HSTART:MOVAX,DATAMOVDS,AXMOVDX,20CHMOVEAX,80808080HOUTDX,EAXNOPNOPL1: MOVDX,200HMOVEAX,DWORD PTR TAB1OUTDX,EAXMOVBP,200L2: DECBPJNZ L2 MOV DX,204H MOV EAX,DWORD PTR TAB2OUTDX,EAXMOVBP,200L3: DECBPJNZ L3 MOV DX,208H MOV EAX,RGYROUTDX,EAXMOVBP,200L4: DEC BP JNZ L4 HLTJMP L1CODEENDS ENDBEG三连实验9 ;i8259.asm .486DATA SEGMENT USE16 AT 0 ORG 40H*4V40H DW ?,? ;保存中断向量的变量OPORT EQU 3A0H ;8259的偶地址JPORT EQU 3A8H ;8259的奇地址TR8255 EQU 20CH ;8255控制口地址A8255 EQU 200H ;8255A口地址B8255 EQU 204H ;8255B口地址C8255 EQU 208H ;8255C口地址 ORG 1000HMM DD ?DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA ORG 2000HBEG: CLI JMP STARTSTART: MOV AX,DATA MOV DS,AX MOV AX,0 MOV SS,AX MOV SP,1000H MOV MM,0F5F5F5F5H MOV AL,80H ;初始化8255 MOV DX,TR8255 OUT DX,AL MOV AL,99H MOV DX,A8255 OUT DX,AL MOV AL,5 MOV DX,C8255 OUT DX,AL CALL WRITEVERLLL: MOV AL,00010011B ;写ICW1 MOV DX,OPORT OUT DX,AL NOP NOP MOV AL,01000000B ;写ICW2 MOV DX,JPORT OUT DX,AL NOP NOP MOV AL,00000001B ;写ICW4 MOV DX,JPORT OUT DX,AL NOP NOP MOV AL,11111100B ;写IMR MOV DX,JPORT OUT DX,AL STI;-LL: MOV SI,1 ;等待中断LL1: MOV CX,10000LL2: NOP LOOP LL2 DEC SI JNZ LL1 NOP NOP NOP NOP NOP NOP NOP NOP NOP JMP LL;-WRITEVER PROC ;写中断向量 PUSHA MOV BX, OFFSET SERVER MOV V40H,BX MOV AX,CS MOV V40H+2,AX POPA RETWRITEVER ENDP;-SERVER PROC ;中断服务程序,显示-SUCCESS MOV EAX,92C6C1BFH MOV DX,A8255 OUT DX,EAX MOV EAX,9286C692H MOV DX,B8255 OUT DX,EAX MOV EAX,MM MOV DX,C8255 OUT DX,EAX NOT EAX MOV MM,EAX MOV AL,20H MOV DX,OPORT OUT DX,AL IRETSERVER ENDP;-CODE ENDS END BEG实验11.486CODESEGMENTUSE16 ASSUME CS:CODE ORG 1000HBEG: JMP STARTCCONPORT EQU 30CHCCONBIT1 EQU 00010110BCCONBIT2 EQU 01010100BCCONBIT3 EQU 10010110BCDPORT1 EQU 300HCDPORT2 EQU 304HCDPORT3 EQU 308HCHDBIT1 EQU 08HCHDBIT2 EQU 04HSTART: NOP ;启动延时 NOP MOV DX,CCONPORT ;写入控制字 MOV AL,CCONBIT1 OUT DX,AL NOP NOP MOV DX,CDPORT1 ;写入初值 MOV AL,CHDBIT1 OUT DX,AL NOP NOP MOV DX,CCONPORT ;写入控制字 MOV AL,CCONBIT2 OUT DX,AL NOP NOP MOV DX,CDPORT2 ;写入初值 MOV AL,CHDBIT1 OUT DX,AL NOP NOPWT1: MOV DX,CCONPORT ;写入控制字 MOV AL,CCONBIT3 OUT DX,AL NOP NOP MOV DX,CDPORT3 ;写入初值 MOV AL,CHDBIT2 OUT DX,ALWT: NOP JMP WTCODE ENDS END BEG 实验13.486DATASEGMENTAT0USE16ORG1000HMMDB?DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATAORG2000HBEG:JMPSTARTTABDB0C0H,0F9HLENSEQU$-TABC8251EQU330HD8251EQU320HCCONPORTEQU30CHCCONBIT1EQU00010110BCCONBIT2EQU01010110BCCONBIT3EQU10010110BCDPORT1EQU300HCDPORT2EQU304HCDPORT3EQU308HCHDBIT1EQU9CHCHDBIT2EQU9CHC8255EQU20CHA8255EQU200HB8255EQU204HSTART:MOVAX,DATAMOVDS,AXCALLI8254CALLI8251MOVDX,C8251INAL,DXCALLI8255AGAIN:MOVMM,05HMOVCL,LENSMOVBX,OFFSET TABTSCAN:MOVDX,A8255MOVEAX,0FFFFFFFFHOUTDX,EAXMOV DX,B8255OUT DX,EAXMOVDX,C8251INAL,DXTESTAL,01HJZTS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论