微机实验思考题Word格式文档下载.docx
《微机实验思考题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机实验思考题Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
取出存入四位十六进制数的下一位。
腾出空间。
4.自编ASCII码转换十六进制、二进制转换BCD码的程序,并调试运行。
ASCII码转换十六进制
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVCX,0004H
MOVDI,3500H
MOVDX,[DI]
A1:
MOVAX,DX
ANDAX,00FFH
CMPAL,40H
JBA2
SUBAL,07H
A2:
SUBAL,30H
MOV[DI+0DH],AL
DECDI
PUSHCX
MOVCL,08H
SHRDX,CL
POPCX
LOOPA1
MOVAX,4C00H
INT21H
CODEENDS
实验三运算类编程实验
1.求累加和程序设计,在偏移地址为1000H开始依顺序填入16个字(16个16位数),利用程序求和,存放在偏移地址2000H;
2.多字节加法程序设计,参考原程序,编写个两个64位数的减法程序,结果保存到具体内存单元,调试并记录。
实验四分支程序设计实验
1、将源数据首址改为3100H,目的数据地址改为310A,再加以验证(注意单步调试);
2、将源数据首址改为310AH,目的数据地址改为3100,再加以验证(注意单步调试)。
实验六排序程序设计实验
1、注意两个循环是如何循环的,如果想减少判断次数,比如说几次交换后就不再有数据交换了,如何修改程序来减少程序执行时间;
2、编一程序把3000H-3009H中内容按从大到小排列;
如果是有符号数怎么改写程序。
思考题2.编一程序把3000H-3009H的内容从大到小排列
MOVCX,000AH
MOVSI,300AH
MOVBL,0FFH
CMPBL,0FFH
JNZA4
MOVBL,00H
DECCX
JZA4
PUSHSI
DECSI
MOVAL,[SI]
CMPAL,[SI]
JBA3
XCHGAL,[SI]
MOV[SI+01H],AL
A3:
INCSI
LOOPA2
POPSI
JMPA1
A4:
MOVAX,4C00H
INT21H;
程序终止
ENDSTART
思考题3.若是有符号数,该怎么处理(需要增加比较数字正负的环节)
JNZA7
JZA7
MOVAH,80H
CMPAL,AH
CMP[SI],AH
JBA5
JBA6
JMPA5
CMP[SI],AH
JBA4
JMPA6
CMPAL,[SI]
JBA5
A5:
XCHGAL,[SI]
MOV[SI+01H],AL
MOVBL,0FFH
A6:
INCSI
A7:
ENDSTARTENDSTART
硬件一静态存储器扩展实验(接线只有一种)
5.改变实验程序,按非规则字写存储器,观察实验结果。
规则字是低位地址为奇数,否者是非规则字,非规则字读取需要两个周期,而规则字只需要一个周期
在计算机中,一个字占两个字节。
一个字在存储器中按字节存储,若高地址为偶数,低地址为奇数,则为规则字。
相反,若高地址为奇数,低地址为偶数,则为非规则字。
6.改变实验程序,按字节方式写存储器,观察实验现象。
字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数,在UTF-8编码中,一个英文字符等于一个字节
7.将实验程序改为死循环程序,分别按规则字与非规则字的方式写存储器。
DW32DUP(?
STARTPROCFAR;
远过程名
CODE;
分配代码段cs
MOVAX,8000H;
存储器扩展空间
MOVDS,AX;
数据段ds地址
AA0:
MOVSI,0001H;
首地址8000:
0001si是偏移地址,01非规则字
MOVCX,0010H;
cx计数寄存器10h十六进制=16十进制
MOVAX,0000H;
ax是累加器从0开始
AA1:
MOV[SI],AX
INCAX;
+1
INCSI;
+1一个字si要+2
LOOPAA1;
cx不等于0则循环
INT21H;
STARTENDP
STARTPROCFAR
CODE
存储器扩展空间段地址
MOVDS,AX
MOVSI,0000H;
数据首地址cx计数16
MOVCX,0010H
MOVAX,0000H
INCAX
SI只加1一个字节
LOOPAA1
(1)规则字方式
数据首地址(偶地址开始)
INCSI
JMPAA0;
跳转到AA0开始执行
(2)非规则字方式
数据首地址(奇地址开始)
硬件二8259中断控制实验
1.在中断中完成BCD码转换为二进制数。
将四个二位十进制数的BCD码存放于3500H起始的内存单元中,将转换的二进制数存入3510H起始的内存单元中,每次中断完成一个二位十进制数的BCD码转换。
实验步骤:
将四个二位十进制数的BCD码存入3500H~3507H中,即:
先键入E3500,然后输入0102030405060708.运行程序,按一次单次脉冲开关KK1+,查看3510内容,应为0ch。
再按一次单次脉冲开关KK1+,查看3511内容,应为22。
继续发中断,依次查看3512,3513内容。
在中断中完成BCD码转换为二进制数。
.MODELTINY
IO8259_0EQU0260H;
EUQ等值赋值语句0260H?
?
端口地址?
IO8259_1EQU0261H
.DATA
BUFFERDB8DUP(?
ReDisplayFlagDB0
.STACK100
.CODE
MOVAX,@DATA
MOVDS,AX;
ds整数段寄存器es附加段寄存器
MOVES,AX
PUSHDS
CALLWriIntver