微机原理-汇编习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解: 堆栈段所在段的物理地址范围为12000H~21FFFH. 当前堆栈段的范围:12000H~127FFH. SP的内容为800H-14H(20) =7ECH.
4、若已知当前DS=1230H,在偏移地址为00A1H开始的存 储器中连续存放6个字节的数据分别为 11H,22H,33H,44H,55H和66H.请指出这些数据在存储器中的 物理地址。如果要从存储器中以字读取方式读出这些数据, 需要访问几次存储器?(几个总线周期)
ADD SI,CX DEC SI AGAIN: XOR DX, DX DIV BX ADD DL, 30H MOV [SI],DL DEC SI LOOP AGAIN DONE: POP SI ... POP AX RET BAP ENDP CSEG ENDS END
答:(1)功能:将16位的二进制数变为ASCII码 (2)VAR2 30H,34H,36H,36H,30H (3)流程图略
8、以下程序实现什么功能?若VAR1的内容为1234H,本 段程序执行后,写出VAR2中的数值?画出程序流程图。
DSEG SEGMENT VAR1 DW ? VAR2 DB 5 DUP (?)
DSEG ENDS CSEG SEGMENT
… BAP PROC FAR
PUSH AX … PUSH SI MOV AX,VAR1 CMP AX,8000H JC DONE MOV SI, OFFSET VAR2 MOV CX, LENGTH VAR2 MOV BX,10
6、已知
ORG 0200H ARY DW -1,2,-3,4
CNT DW $-ARY
VAR DW ARY,$+4 RST DW ? … MOV AX, ARY
AX = 0FFFFH , BP = 020AH , BX = 0200H ,CX = 0008H , DX = 0210H ,SI= 020EH
MOV BP, OFFSET VAR
MOV BX, VAR
MOV CX, CNT
MOV DX, VAR+2
LEA SI, RST
… 此程序执行后AX = ,BP = ,BX = ,CX = ,DX = ,
7、若十进制数字0~9的LED七段码对照下表,试用XLAT指 令求数字5的七段码值:
十进制数 0 1 2 3 4
SDATA SEGMENT TABLE: DB 40H,79H,24H,30H,19H ;七段码表格
DB 12H,02H,78H,00H,18H
SDATA ENDS
… MOV AL,5 MOV BX,OFFSET TABLE XLAT TABLE
;数字5的偏移量→AL ; 表首地址→BX ;查表得到AL=12H
七段显示码 40H 79H 24H 30H 19H
十进制数 5 6 7 8 9
七段显示码 12H 02H 78H 00H 18H
a
f
b
g
eΒιβλιοθήκη Baidud
c
DP
DP g f e d c b a
七段码位为0时发光,为1时熄灭。
十进制数’0’,a、b、c、d、e、f均为0, 发光。g、DP为1,七段显示码为40H
实现以上操作的程序
1、已知某指令的逻辑地址CS=0074H IP=5000H,求其物理 地址。
解:物理地址为0074H×10H+5000H = 5740H
2、有两个字807FH,5FEFH,它们在8086系统的存储器中 的地址分别是41020H和41023H,请用图示它们在存储器 中的位置。若它们的段地址是4000H,这两个字的有效地 址是什么?
解: (1)存储位置图如下图 (2)有效地址分别为0020H和1023H
41020H 41021H
… 41023H 41024H
7FH 80H … EFH 5FH …
3、在某系统中,已知当前SS=1200H,SP=0800H,请说明 该堆栈段所在段的物理地址范围,若在当前堆栈段中存入 20个字节数据,那么SP的内容为什么值?
解:由于访问非规则字,需要对存储器访问6次。
123A1H 11H 123A2H 22H 123A4H 33H 123A4H 44H 123A5H 55H 123A6H 66H
5、对于给定的数据定义,画图说明下列语句所分配的存储空间 及初始化的数据,并写出变量R1的值。 A1 DW 1,2,3,’AB’ A2 DB ‘ABC’ A3 DB 6 DUP (?) R1 EQU A3-A1
伪指令
SEGMENT … ENDS 定义数据段,段名为SDATA DB 在数据段中定义字节数据,建立七段码表TABLE OFFSET获取表TABLE相对于数据段基址的偏移
DS=1000 BX=0000
...
存储器
40 10000H 79 10001H 24 10002H 30 10003H 19 10004H 12 10005H 02 10006H
4、若已知当前DS=1230H,在偏移地址为00A1H开始的存 储器中连续存放6个字节的数据分别为 11H,22H,33H,44H,55H和66H.请指出这些数据在存储器中的 物理地址。如果要从存储器中以字读取方式读出这些数据, 需要访问几次存储器?(几个总线周期)
ADD SI,CX DEC SI AGAIN: XOR DX, DX DIV BX ADD DL, 30H MOV [SI],DL DEC SI LOOP AGAIN DONE: POP SI ... POP AX RET BAP ENDP CSEG ENDS END
答:(1)功能:将16位的二进制数变为ASCII码 (2)VAR2 30H,34H,36H,36H,30H (3)流程图略
8、以下程序实现什么功能?若VAR1的内容为1234H,本 段程序执行后,写出VAR2中的数值?画出程序流程图。
DSEG SEGMENT VAR1 DW ? VAR2 DB 5 DUP (?)
DSEG ENDS CSEG SEGMENT
… BAP PROC FAR
PUSH AX … PUSH SI MOV AX,VAR1 CMP AX,8000H JC DONE MOV SI, OFFSET VAR2 MOV CX, LENGTH VAR2 MOV BX,10
6、已知
ORG 0200H ARY DW -1,2,-3,4
CNT DW $-ARY
VAR DW ARY,$+4 RST DW ? … MOV AX, ARY
AX = 0FFFFH , BP = 020AH , BX = 0200H ,CX = 0008H , DX = 0210H ,SI= 020EH
MOV BP, OFFSET VAR
MOV BX, VAR
MOV CX, CNT
MOV DX, VAR+2
LEA SI, RST
… 此程序执行后AX = ,BP = ,BX = ,CX = ,DX = ,
7、若十进制数字0~9的LED七段码对照下表,试用XLAT指 令求数字5的七段码值:
十进制数 0 1 2 3 4
SDATA SEGMENT TABLE: DB 40H,79H,24H,30H,19H ;七段码表格
DB 12H,02H,78H,00H,18H
SDATA ENDS
… MOV AL,5 MOV BX,OFFSET TABLE XLAT TABLE
;数字5的偏移量→AL ; 表首地址→BX ;查表得到AL=12H
七段显示码 40H 79H 24H 30H 19H
十进制数 5 6 7 8 9
七段显示码 12H 02H 78H 00H 18H
a
f
b
g
eΒιβλιοθήκη Baidud
c
DP
DP g f e d c b a
七段码位为0时发光,为1时熄灭。
十进制数’0’,a、b、c、d、e、f均为0, 发光。g、DP为1,七段显示码为40H
实现以上操作的程序
1、已知某指令的逻辑地址CS=0074H IP=5000H,求其物理 地址。
解:物理地址为0074H×10H+5000H = 5740H
2、有两个字807FH,5FEFH,它们在8086系统的存储器中 的地址分别是41020H和41023H,请用图示它们在存储器 中的位置。若它们的段地址是4000H,这两个字的有效地 址是什么?
解: (1)存储位置图如下图 (2)有效地址分别为0020H和1023H
41020H 41021H
… 41023H 41024H
7FH 80H … EFH 5FH …
3、在某系统中,已知当前SS=1200H,SP=0800H,请说明 该堆栈段所在段的物理地址范围,若在当前堆栈段中存入 20个字节数据,那么SP的内容为什么值?
解:由于访问非规则字,需要对存储器访问6次。
123A1H 11H 123A2H 22H 123A4H 33H 123A4H 44H 123A5H 55H 123A6H 66H
5、对于给定的数据定义,画图说明下列语句所分配的存储空间 及初始化的数据,并写出变量R1的值。 A1 DW 1,2,3,’AB’ A2 DB ‘ABC’ A3 DB 6 DUP (?) R1 EQU A3-A1
伪指令
SEGMENT … ENDS 定义数据段,段名为SDATA DB 在数据段中定义字节数据,建立七段码表TABLE OFFSET获取表TABLE相对于数据段基址的偏移
DS=1000 BX=0000
...
存储器
40 10000H 79 10001H 24 10002H 30 10003H 19 10004H 12 10005H 02 10006H