微机原理实验代码与截图.docx
- 文档编号:25980020
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:36
- 大小:204.63KB
微机原理实验代码与截图.docx
《微机原理实验代码与截图.docx》由会员分享,可在线阅读,更多相关《微机原理实验代码与截图.docx(36页珍藏版)》请在冰豆网上搜索。
微机原理实验代码与截图
2-1
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVSI,3500H;设置待转换数据区的地址指针
MOVDI,3510H;设置结果数据区的地址指针
MOVBX,000AH;乘数10
MOVCX,0004H;循环4次
MOVAH,00H
MOVAL,[SI];取第一位ASCⅡ码
SUBAL,30H;转换成二进制数
A1:
IMULBX;乘10
ADDAL,[SI+01];加次位
SUBAL,30H
INCSI;修改地址指针
LOOPA1;循环
MOV[DI],AX;保存结果
INT3H
;此处输入代码段代码
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
2-2
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVCX,0005H;循环计数器赋初值
MOVDI,3500H;ASCⅡ码首址
A1:
MOVBL,0FFH;将错误标志送入BL
MOVAL,[DI];送ASCⅡ码至AL
CMPAL,3AH;比较AL与3A
JNBA2;不低于3A则转A2
SUBAL,30H;低于3A则取ASCⅡ码低4位
JBA2;低于30则转A2
MOVBL,AL;否则AL内容送入BL,取代FF
A2:
MOVAL,BL;结果或错误标志送入AL
MOV[DI+0AH],AL
INCDI
LOOPA1
INT3H
CODESENDS
ENDSTART
2-5
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,0B07H
MOVDS,AX
MOVDI,3000H
MOVDX,9111H
MOVCX,2222H
TESTDH,80H
JZLP
XORDX,7FFFH
NOTCX
ADCCX,1
ADCDX,0
LP:
MOV[DI],CL
MOV[DI+1],CH
MOV[DI+2],DL
MOV[DI+3],DH
INT3
INT3H
CODESENDS
ENDSTART
3
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVCX,10H
MOVSI,3000H
MOVDI,3010H
CMPSI,DI
JAA2
ADDSI,CX
ADDDI,CX
DECSI
DECDI
A1:
MOVAL,[SI]
MOV[DI],AL
DECSI
DECDI
DECCX
JNEA1
JEA3
A2:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECCX
JNEA2
A3:
INT3H
CODESENDS
ENDSTART
4-1
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVDX,01H
MOVBL,02H
A1:
MOVAL,BL
INCBL
MULBL
ADDDX,AX
CMPAX,0C8H
JBEA1
INT3H
CODESENDS
ENDSTART
4-2
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVDI,3000H
MOVCX,[DI]
MOVCH,00H
MOVBL,00H
INCDI
A1:
MOVAX,[DI]
CMPAX,0000H
JGEA2
INCBL
A2:
INCDI
LOOPA1
MOV[DI],BL
INT3H
CODESENDS
ENDSTART
5-1
DATASSEGMENT
AADB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATAS,SS:
STACKS
SUB1PROCNEAR
CMPCX,0
JEA4
DECCX
MOVBH,[SI]
MOVBL,BH
A1:
INCSI
MOVAL,[SI]
CMPAL,BH
JAEA2
CMPAL,BL
JBEA3
JMPA4
A2:
MOVBH,AL
JMPA4
A3:
MOVBL,AL
A4:
LOOPA1
RET
SUB1ENDP
START:
MOVAX,DATAS
MOVDS,AX
MOVSI,OFFSETAA
MOVCX,0008H
CALLNEARPTRSUB1
MOVAH,BH
MOVAL,BL
INT3
CODEENDS
ENDSTART
实验6
DATASSEGMENT
ORG3000H
VARDB11H,0d3H,77H,6bH,0BH,33H,0aaH,21H,0ffH,67H
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
DW100DUP(?
)
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVCX,000AH
MOVSI,300AH
MOVBL,0FFH
A1:
CMPBL,0FFH
JNEA4
MOVBL,00H
DECCX
CMPCX,0
JEA4
PUSHSI
PUSHCX
A2:
DECSI
MOVAL,[SI]
MOVDL,[SI-1]
CMPAL,DL
JAA3
MOV[SI-1],AL
MOV[SI],DL
MOVBL,0FFH
A3:
LOOPA2
POPCX
POPSI
JMPA1
A4:
INT3
;此处输入代码段代码
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
实验七
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
START:
MOVAL,0
MOVBH,0AH;表示前景、背景颜色
MOVAH,6H
MOVCX,0
MOVDH,24
MOVDL,79
INT10H;清屏幕
MOVAH,2
MOVBH,0
MOVDH,10H
MOVDL,10H
INT10H;光标设置在第10行第10列
MOVCX,001AH;共26个字母,所以循环次数为26
MOVDL,'Z'
LP:
MOVAL,DL
MOVBH,0
MOVBL,2FH;设置显示的A到Z的底色和字色
MOVAH,9
INT10H
DECDL
LOOPLP
INT3
CODESENDS
ENDSTART
DATASSEGMENT
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
START:
MOVAL,0
MOVBL,40H
MOVAH,6
MOVCX,0
MOVDH,24
MOVDL,79
INT10H
MOVDH,0
MOVAL,'A'
Q1:
INCDH
MOVDL,0
Q2:
MOVAH,2
MOVBH,0
INT10H
MOVCX,1
MOVBH,0
MOVBL,97H
MOVAH,9
INT10H
INCAL
INCDL
CMPDL,10
JBQ2
CMPDH,11
JBQ1
INT3
CODESENDS
ENDSTART
实验八
.486p
d8255macroport,data1
movdx,port
moveax,data1
outdx,eax
nop
nop
endm
datasegmentat0use16
org1*4
v1dw2dup(?
)
org2*4
v2dw2dup(?
)
org3*4
v3dw2dup(?
)
org1000h
tttdb?
stackpequ2000h
P255CWequ20CH
P255Aequ200H
P255Bequ204H
P255Cequ208H
dataends
codesegmentuse16
assumecs:
code,ds:
data,ss:
data
org1100h
start:
nop
movax,0
movds,ax
movss,ax
movsp,stackp
initi:
moveax,60000000h
movcr0,eax
movax,data
movds,ax
movss,ax
movsp,stackp
movcx,1000
i0:
deccx
jnzi0
d8255P255CW,80808080h
i1:
d8255P255A,0c099c099h
d8255P255B,0c0c0c0c0h;40004000
d8255P255C,0fafafafah;绿
calldel1
d8255P255C,0f5f5f5f5h;红
calldel1
d8255P255C,0f0f0f0f0h;黄
calldel1
d8255P255C,0ffffffffh;灭
calldel1
d8255P255A,8ef8c0c0h
d8255P255B,8E8ec0c0h;00007FFF
d8255P255C,0fafafafah
calldel1
d8255P255C,0f5f5f5f5h
calldel1
d8255P255C,0f0f0f0f0h
calldel1
d8255P255C,0ffffffffh
calldel1
movax,4000h
moves,ax
moveax,0
chk:
movbx,0000h;从4000:
0000单元开始写
moves:
[bx],eax
movdx,P255A
outdx,eax
nop
nop
movdx,P255B
outdx,eax
nop
nop
pusheax;写入的数据入栈
moveax,0fafafafah
movdx,P255C;绿色
outdx,eax
calldel1
popeax;出栈
chk1:
addbx,4;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmpbx,8000h
jzchk2;写满8000H个内存单元
moves:
[bx],eax
jmpchk1;;;;;;;;;;;;;;;;;;;;;;;;;;;
chk2:
movbx,0fffch
chk3:
addbx,4
cmpbx,8000h
jzchk0
cmpeax,es:
[bx];把每个单元的数据读出与写入的
jzchk3
movecx,eax;数据比较,是否正确
moveax,0f5f5f5f5h
movdx,P255C;不正确,颜色变成红色
outdx,eax
moveax,ecx
calldel1;延时
chk0:
addeax,01010101h;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmpeax,0ffffffffh;下一个写入的数据
jzchk4;;;;;;;;;;;;;;;;;;;;;;;;;;;
jmpchk
chk4:
jmpi1
del1proc;延时
movecx,8ffffh
i2:
dececx
jnzi2
ret
endp
codeends
endstart
实验10.1:
(以key为原本改进)
.486
DATASEGMENTAT0USE16
ORG1000H
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE
ORG3000H
BEG:
JMPSTART
TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH
DPORT1EQU360H
DPORT2EQU380H
NUMDB0001H
COUNTDD00000FFFFH
START:
MOVAX,DATA
MOVDS,AX
MOVCL,5
KK:
MOVAL,CL
MOVBX,OFFSETTAB
XLATTAB
MOVDX,DPORT2
OUTDX,AL
NOP
MOVDX,DPORT1
MOVAL,NUM
OUTDX,AL
NOP
NOP
ROLNUM,1
MOVCOUNT,00000FFFFH
DELAY:
NOP
DECCOUNT
JNZDELAY
JMPKK
CODEENDS
ENDBEG
实验10.2
使显示20115158
.486
DATASEGMENTAT0USE16
ORG2000H
BUFDD?
COUNTDB?
DB?
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
ORG01000H
BEG:
JMPSTART
TAB1DB0A4H,0F9H,92H,92H
TAB2DB0C0H,0F9H,0F9H,80H
RGDD050A050AH
GRDD0A050A05H
RYDD05000500H
YRDD00050005H
RRRRDD05050505H
RGYRDD050A0005H
START:
MOVAX,DATA
MOVDS,AX
MOVDX,20CH
MOVEAX,80808080H
OUTDX,EAX
NOP
NOP
L1:
MOVDX,200H
MOVEAX,DWORDPTRTAB1
OUTDX,EAX
MOVBP,200
L2:
DECBP
JNZL2
MOVDX,204H
MOVEAX,DWORDPTRTAB2
OUTDX,EAX
MOVBP,200
L3:
DECBP
JNZL3
MOVDX,208H
MOVEAX,RGYR
OUTDX,EAX
MOVBP,200
L4:
DECBP
JNZL4
HLT
JMPL1
CODEENDS
ENDBEG
三连
实验9
;i8259.asm
.486
DATASEGMENTUSE16AT0
ORG40H*4
V40HDW?
?
;保存中断向量的变量
OPORTEQU3A0H;8259的偶地址
JPORTEQU3A8H;8259的奇地址
TR8255EQU20CH;8255控制口地址
A8255EQU200H;8255A口地址
B8255EQU204H;8255B口地址
C8255EQU208H;8255C口地址
ORG1000H
MMDD?
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
ORG2000H
BEG:
CLI
JMPSTART
START:
MOVAX,DATA
MOVDS,AX
MOVAX,0
MOVSS,AX
MOVSP,1000H
MOVMM,0F5F5F5F5H
MOVAL,80H;初始化8255
MOVDX,TR8255
OUTDX,AL
MOVAL,99H
MOVDX,A8255
OUTDX,AL
MOVAL,5
MOVDX,C8255
OUTDX,AL
CALLWRITEVER
LLL:
MOVAL,00010011B;写ICW1
MOVDX,OPORT
OUTDX,AL
NOP
NOP
MOVAL,01000000B;写ICW2
MOVDX,JPORT
OUTDX,AL
NOP
NOP
MOVAL,00000001B;写ICW4
MOVDX,JPORT
OUTDX,AL
NOP
NOP
MOVAL,11111100B;写IMR
MOVDX,JPORT
OUTDX,AL
STI
;---------------------------------------
LL:
MOVSI,1;等待中断
LL1:
MOVCX,10000
LL2:
NOP
LOOPLL2
DECSI
JNZLL1
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
JMPLL
;--------------------------------------
WRITEVERPROC;写中断向量
PUSHA
MOVBX,OFFSETSERVER
MOVV40H,BX
MOVAX,CS
MOVV40H+2,AX
POPA
RET
WRITEVERENDP
;-------------------------------------
SERVERPROC;中断服务程序,显示-SUCCESS
MOVEAX,92C6C1BFH
MOVDX,A8255
OUTDX,EAX
MOVEAX,9286C692H
MOVDX,B8255
OUTDX,EAX
MOVEAX,MM
MOVDX,C8255
OUTDX,EAX
NOTEAX
MOVMM,EAX
MOVAL,20H
MOVDX,OPORT
OUTDX,AL
IRET
SERVERENDP
;-------------------------------------
CODEENDS
ENDBEG
实验11
.486
CODESEGMENTUSE16
ASSUMECS:
CODE
ORG1000H
BEG:
JMPSTART
CCONPORTEQU30CH
CCONBIT1EQU00010110B
CCONBIT2EQU01010100B
CCONBIT3EQU10010110B
CDPORT1EQU300H
CDPORT2EQU304H
CDPORT3EQU308H
CHDBIT1EQU08H
CHDBIT2EQU04H
START:
NOP;启动延时
NOP
MOVDX,CCONPORT;写入控制字
MOVAL,CCONBIT1
OUTDX,AL
NOP
NOP
MOVDX,CDPORT1;写入初值
MOVAL,CHDBIT1
OUTDX,AL
NOP
NOP
MOVDX,CCONPORT;写入控制字
MOVAL,CCONBIT2
OUTDX,AL
NOP
NOP
MOVDX,CDPORT2;写入初值
MOVAL,CHDBIT1
OUTDX,AL
NOP
NOP
WT1:
MOVDX,CCONPORT;写入控制字
MOVAL,CCON
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 代码 截图