微机原理学习笔记.docx
- 文档编号:9409731
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:260.59KB
微机原理学习笔记.docx
《微机原理学习笔记.docx》由会员分享,可在线阅读,更多相关《微机原理学习笔记.docx(17页珍藏版)》请在冰豆网上搜索。
微机原理学习笔记
1、例:
在NUM和NUM+1单元分别放有一个8位无符号数,编程序将其中较大的数存入NUM单元中,而将较小的数存入NUM+1单元中,同时将较大的数存入另一结果单元RES中
DATASEGMENT
NUMDB45H,78H
RESDB?
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETNUM
MOVAL,[BX]
CMPAL,[BX+1]
JNCDONE
XCHGAL,[BX+1]
MOV[BX],AL
DONE:
MOVRES,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2、例:
编写计算下面函数值的程序:
1X>0
Y=0X=0
-1X<0
设输入数据为X、输出数据Y,且皆为字节变量。
DATASEGMENT
XDB-10
YDB?
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
CMPX,0;与0进行比较
JGEA1;X≥0转A1
MOVY,-1;X<0时,-1→Y
JMPEXIT
A1:
JGA2;X>0转A2
MOVY,0;X=0时,0→Y
JMPEXIT
A2:
MOVY,1;X>0,1→Y
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
♦3、例:
设数据段中NUM1、NUM2两个字节单元存有无符号整数,编制程序完成:
如果两个都是偶数,则分别加1后送DATA1、DATA2字节单元;
如果两个都是奇数,则分别减1后送DATA1、DATA2字节单元;
如果两个数中一个是奇数,一个是偶数,则把奇数送DATA1字节单元、偶数送DATA2字节单元。
♦分析:
对于一个二进制数,如果其最低位为0,那么该数必定是偶数,否则是奇数。
♦
♦DATASEGMENT
♦NUM1DB45H
♦NUM2DB0AEH
♦DATA1DB?
♦DATA2DB?
♦DATAENDS
♦CODESEGMENT
♦ASSUMECS:
CODE,DS:
DATA
♦BEGIN:
♦MOVAX,DATA
♦MOVDS,AX
♦MOVAL,NUM1
♦MOVAH,NUM2
♦TESTAL,01H;测试NUM1单元内容的奇偶
♦JNENEXT1;AL是奇数时转至NEXT1
♦TESTAH,01H;测试NUM2单元内容的奇偶,此时AL是偶数
♦JNENEXT2AH是奇数转至NEXT2
♦INCAL;两个都是偶数
♦INCAH
♦JMPENDO
♦NEXT2:
XCHGAL,AHNUM1是偶数,NUM2是奇数
♦JMPENDO
♦NEXT1:
TESTAH,01H
♦JZENDO;AH是偶数
♦DECAL
♦DECAH
♦ENDO:
MOVDATA1,AL;存放结果
♦MOVDATA2,AH
♦MOVAH,4CH;返回DOS
♦INT21H
♦CODEENDSENDBEGIN
4、例:
在NUM开始的字节单元中放有6个数,编程序将这六个数相加,假设结果不超过一个字节,并且将结果存入NUM开始的第七个存储单元中
DSEGSEGMENT
NUMDB03H,07H,11H,02H,30H,19H
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
START:
MOVAX,DSEG
MOVDS,AX
MOVBX,OFFSETNUM
MOVCX,6
MOVAL,[BX]
DECCX
Skip:
INCBX
ADDAL,[BX]
LOOPSKIP
INCBX
MOV[BX],AL
MOVAH,4CH
INT21H
CSEGENDS
ENDSTART
5、例:
试编一个程序将字单元BUF中所含1的个数存入COUNT单元中。
DATASEGMENT
BUFDW0011110010101011B
COUNTDB?
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,
CS:
CODE,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
LEAAX,BUF
MOVCL,0
Lopa:
MOVBX,AX
ANDBX,BX
JZEXIT;(BX)=0,结束循环
SHLAX,1
JNCLOPA
INCCL
JMPLOPA
EXIT:
MOVCOUNT,CL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6、例:
数据段中从A单元开始存放N个16位无符号数组,编制程序使数组中的数按照从大到小的次序排列
DATASEGMENT
ADW7,5,8,9,4,3
NEQU($-A)/2
DATAENDS
CODESEGMENT
Assumecs:
code;ds:
data
START:
movax,data
Movds,ax
MOVCX,N
DECCX
0P1:
MOVDI,CX
LEABX,A
OP2:
MOVAX,[BX]
CMPAX,[BX+2]
JGECONTINUE
XCHGAX,[BX+2]
MOV[BX],AX
CONTINUE:
ADDBX,2
LOOPOP2
MOVCX,DI
LOOPOP1
CODEENDS
ENDSTART
实验:
在存储器中有8个字节存有十六进制数字,现要求编写一段程序,实现将每个数字变换成ASCII码,并存在这8个字节后面的存储器中。
参考程序如下:
DSEGSEGMENT
A1DB15H,24H,62H,4FH,
0A7H,29H,73H,3BH
B1=$-A1
B2=B1*2
A2DBB2DUP(?
)
DSEGENDS
CODESEGMNET
ASSUMECS:
CODE,DS:
DSEG
MAIN:
MOVAX,DSEG
MOVDS,AX
LEASI,A1
LEADI,A2
MOVCX,B1
DIGIT:
MOVBL,2
MOVAL,[SI]
MOVBH,AL
PUSHCX
MOVCL,4
RORAL,CL
——popcx————
CHANG:
ANDAL,0FH
ADDAL,—30h—
CMPAL,39H
JLECONV
ADDAL,07H
CONV:
MOV[DI],AL
——incdi————
MOVAL,BH
DECBL
JNZCHANG
INCSI
LOOPDIGIT
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
实验8、
存储容量=存储单元数×存储单元的位数=2M×N(DRAM为22M×N)
M:
芯片的地址线根数
N:
芯片的数据线根数
随机存储器(地址扩展)
只读存储器
(必考题原题)
思考题:
在对存储芯片进行译码寻址时,如果只有部分高位地址参与,这种译码方法被称为部分译码。
现有EPROM芯片2732(4K8位),以及3-8译码器74LS138,各种门电路若干,要求在8088CPU上扩展容量为16K8EPROM内存,要求采用部分译码,不使用高位地址线A19、A18、A15(不用的全为0),选取其中连续、好用又不冲突的一组地址,要求首地址为20000H。
请回答:
1)2732的芯片地址线、数据线位数是多少?
2)组成16KX8需要2732芯片多少片?
3)写出各芯片的地址范围。
4)画出存储扩展图(要求画出地址线、数据线及控制线的连接)
以端口A为例,在允许中断情况下,归结如下:
●当外设的选通信号STB有效时,来自外设的数据装入8255A输入缓冲器后,IBFA=1。
●在INTEA=1及IBFA=1且STB=1时,INTRA由0变1,端口A向CPU发出中断请求信号。
●CPU响应中断,进入中断服务程序,通过执行IN指令对端口A进行读操作,将端口A中的数据读入CPU。
并由RD的下降沿使INTRA=0,撤销中断请求,由RD的上升沿使IBFA=0,接着8255A的A口又可以接收外设送来的新数据。
以端口A为例,在允许中断情况下,归纳如下:
●CPU向端口A写入数据,OBFA=1,ACKA也为1。
在此种条件下之下,INTRA端输出由低变高,端口A向CPU发出中断请求信号。
●CPU响应端口A的中断请求,执行OUT指令将数据写入端口A。
在写信号的下降沿作用下,INTR信号变成低电平,上升沿使OBFA=0,表明CPU已经把数据送至指定端口,外设可以把数据输出。
外设取走数据后,发出应答信号ACKA=0。
●在ACKA有效信号结束后,一方面使OBFA=1,又一方面使INTRA输出端由低变高,端口A再次向CPU发出中断请求,要求输出新的数据,从而又开始一次新的数据输出过程。
♦向下生长型:
进栈时SP指针递减,出栈时SP指针递增。
♦8086/8088的堆栈属于向下生长型
♦堆栈操作的单位是字,进栈和出栈只对字量
MOV操作
LEA有效地址传送指令
该指令将指令中给出的源操作数的有效地址传送到目的操作数
Movbx,offsetnum==leabx,num
(4)NEG 求补指令
⏹指令格式:
NEG OPR
⏹执行操作:
(OPR)←0FFFFH-(OPR)+1
指令格式:
CMPDST,SRC
⏹执行操作:
(DST)-(SRC),结果不送入目的地址,置标志位。
⏹⑴MUL无符号数乘法指令
●指令格式:
MUL SRC
●执行操作:
字节操作数AX←AL×(SRC)。
字操作数DX,AX←AX×(SRC)。
●对标志位的影响:
OF、CF
♦⑵IMUL 有符号数乘法指令
◆指令格式:
IMUL SRC
◆执行操作:
字节操作数AX←AL×(SRC)
字操作数DX,AX←AX×(SRC)
◆对标志位的影响:
OF、CF
◆MOVAL,0B4H;AL=B4H
◆MOVBL,11H;BL=11H
◆IMULBL;AX=0FAF4H把负数变成正数求出结果取补码
Al=10110100--11001100(原)取正为4c
4c*11=50c
即结果为-50c=1000010100001100--求补1111101011110100—》FAF4
⑴DIV 无符号数除法指令
指令格式:
DIV SRC
执行操作:
1字节操作:
(AX)/SRC,商(8位)→AL
余数(8位)→AH
②字操作:
(DX)(AX)/SRC,商(16位)→AX
余数(16位)→DX
CBW 字节转换为字指令
格式:
CBW
执行操作:
将AL的符号位扩展到整个AH
若AL的符号位为0,则AH←00H
若AL的符号位为1,则AH←0FFH
Zhongdian
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)