微型计算机技术实验指导书的答案
3、设计要求:
(1)在数据段偏移地址为1000H处开始,连续存放有3字节数据(高位对应高地址,低位对应低地址)1003H处连续存放2字节的数据(高位对应高地址,低位对应低地址),求两个数据之和。并将结果存放到两数据之后。
偏移地址
内容
1000H
56H
1001H
34H
1002H
12H
1003H
9AH
1004H
78H
如:12 34 56H + 78 9AH = 12 AC F0H
(2)编程:
DATA SEGMENT
ORG 1000H
DA1 DB 56H,34H,12H
DA2 DB 9AH,78H
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,DA1
MOV DL,0
MOV BL,DA2
ADD AL,BL
ADC DL,0
MOV SUM,AL
MOV AL,DA1+1
MOV DH,0
MOV BL,DA2+1
ADD AL,BL
ADC DH,0
ADD AL,DL
MOV SUM+1,AL
MOV AL,DA1+2
ADD AL,DH
MOV SUM+2,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START
(1)在数据段偏移地址为1000H处,存放有0-9的平方值,任意给出一个0-9的数M存放到1010H单元中,查表求出M的平方值,并将结果存放到1011H单元。
(2)编程:提示使用XLAT指令
DATA SEGMENT
INPUT DB 'PLEASE INPUT X(0-9):$'
ORG 1000H
TAB DB 0,1,4,9,16,25,36,49,64,81
ORG 1010H
M DB ?
ORG 1011H
SQUAR DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,9
LEA DX,INPUT
INT 21H
MOV AH,1
INT 21H
AND AL,0FH
MOV M,AL
MOV BX,OFFSET TAB
XLAT TAB
MOV SQUAR,AL
MOV AX,4C00H
INT 21H
CODE ENDS
END START
2、设计要求:
(1)用串传送指令把A程序的偏移量1000H开始的10个数传送到同一数据段的偏移地址为1010H开始的区域。用Debug查看运行结果。
(2)编程:
DATA SEGMENT
ORG 1000H
STRING1 DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0DH
ORG 1010H
STRING2 DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,STRING1
LEA DI,STRING2
MOV CX,10
CLD
REP MOVSB
MOV AX,4C00H
INT 21H
CODE ENDS
END START
3、设计要求:
(1)把BX寄存器中“1”的个数放到AL中,“0”的个数放到AH中。并将AL中的数和AH中的数在屏幕上显示出来。
(2)编程:
CODE SEGMENT
MESS1 DB 0DH,0AH,'THE NUMBER OF 1 IN BX:$'
MESS2 DB 0DH,0AH,'THE NUMBER OF 0 IN BX:$'
ASSUME CS:CODE,DS:CODE
START:
MOV AX,CODE
MOV DS,AX
MOV BX,0BB73H ;随机输入的数
SUB AX,AX
MOV CX,16
L1:JCXZ L3
SHL BX,1