微机实验思考题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据传送
1、子程序Move中为什么比较SI、DI?
源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。
第一章源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。
2、编写一个程序,将DS段中的数据传送到实验仪B4区的61C256中。说明:B4区的
61C256在I/O 设备区,使用IOR 、IOW 读写。
实验二 数制转换实验
1. 实验内容1中将一个五位十进制数转换为二进制数(十六位)时,这个十进制数最小可为多少,最大可为多少?为什么? 最大65535(FFFF ),最小为0.存储器只能存16位,即FFFF 。
2. 将一个十六位二进制数转换为ASCII 码十进制数时,如何确定D i 的值?
01223344D 10D 10D 10D 10D N +⨯+⨯+⨯+⨯=
D i :表示十进制数0~9
将十六位二进制数转换为五位ASCII 码表示的十进制数,就是求D1~D4,并将它们转换为ASCII 码。
该位除以10取商,加30H 。即加30H 为对应的 ASCII 码。
3. 在十六进制转换为ASCII 码时,存转换结果后,为什么要把DX 向右移四次? 取出存入四位十六进制数的下一位。腾出空间。
4. 自编ASCII 码转换十六进制、二进制转换BCD 码的程序,并调试运行。 ASCII 码转换十六进制 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX,0004H MOV DI,3500H MOV DX,[DI] A1: MOV AX,DX AND AX,00FFH CMP AL,40H JB A2 SUB AL,07H A2: SUB AL,30H MOV [DI+0DH],AL DEC DI PUSH CX MOV CL,08H SHR DX,CL POP CX LOOP A1 MOV AX,4C00H INT 21H CODE ENDS
实验三运算类编程实验
1. 求累加和程序设计,在偏移地址为1000H开始依顺序填入16个字(16个16位
数),利用程序求和,存放在偏移地址2000H;
2. 多字节加法程序设计,参考原程序,编写个两个64位数的减法程序,结果保存到
具体内存单元,调试并记录。
实验四分支程序设计实验
1、将源数据首址改为3100H,目的数据地址改为310A,再加以验证(注意单步调试);
2、将源数据首址改为310AH,目的数据地址改为3100,再加以验证(注意单步调试)。
实验六排序程序设计实验
1、注意两个循环是如何循环的,如果想减少判断次数,比如说几次交换后就不再有数据交换了,如何修改程序来减少程序执行时间;
2、编一程序把3000H-3009H中内容按从大到小排列;如果是有符号数怎么改写程序。
思考题2. 编一程序把3000H-3009H的内容从大到小排列
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 000AH
MOV SI, 300AH
MOV BL, 0FFH
A1: CMP BL, 0FFH
JNZ A4
MOV BL, 00H
DEC CX
JZ A4
PUSH SI
PUSH CX
A2: DEC SI
MOV AL, [SI]
DEC SI
CMP AL, [SI]
JB A3
XCHG AL, [SI]
MOV [SI+01H], AL
MOV BL, 0FFH
A3: INC SI
LOOP A2
POP CX
POP SI
JMP A1
A4: MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START
思考题 3.若是有符号数,该怎么处理(需要增加比较数字正负的环节)
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 000AH
MOV SI, 300AH
MOV BL, 0FFH
A1: CMP BL, 0FFH
JNZ A7
MOV BL, 00H
DEC CX
JZ A7
PUSH SI
PUSH CX
A2: DEC SI
MOV AL, [SI]
DEC SI
MOV AH, 80H
CMP AL, AH
JB A3
CMP [SI] , AH
JB A5
CMP AL, [SI]
JB A6
JMP A5
A3: CMP [SI] , AH
JB A4
JMP A6
A4: CMP AL,[SI]
JB A5
JMP A6
A5: XCHG AL,[SI]
MOV [SI+01H],AL
MOV BL,0FFH
A6: INC SI
LOOP A2
POP CX
POP SI
JMP A1
A7: MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START END START
硬件一静态存储器扩展实验(接线只有一种)
5.改变实验程序,按非规则字写存储器,观察实验结果。
规则字是低位地址为奇数,否者是非规则字,非规则字读取需要两个周期,而规则字只需要一个周期
在计算机中,一个字占两个字节。一个字在存储器中按字节存储,若高地址为偶数,低地址为奇数,则为规则字。相反,若高地址为奇数,低地址为偶数,则为非规则字。
6.改变实验程序,按字节方式写存储器,观察实验现象。
字节(Byte)是计算机信息技术用于计量存储容量和传输
容量的一种计量单位,一个字节等于8位二进制数,在
UTF-8编码中,一个英文字符等于一个字节
7. 将实验程序改为死循环程序,分别按规则字与非规则字
的方式写存储器。
5. 改变实验程序,按非规则字写存储器,观察实验结果。
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
START PROC FAR ;远过程名
ASSUME CS:CODE ;分配代码段cs
MOV AX, 8000H ; 存储器扩展空间
MOV DS, AX ;数据段ds地址