- 43
- 0
- 约3.16千字
- 约 5页
- 2017-01-16 发布于湖北
- 举报
有一首地址为ARRAY的M个字符数组,试编写一段程序,求出该数组的内容之和,不考虑溢出,并把结果存入TOTAL中。
MOV CX,M
MOV AX,0
MOV SI,AX
START:ADD AX,ARRAY[SI]
ADD SI,2
LOOP START
MOV TOTAL,AX
有一字符串,存放在ASCIISTR的内存区域中,字符串的长度为L,要求在字符串中查找空格(ASCII码为20H),找到则继续运行,否则跳转到NOTFOUND中执行。
MOV CX,L
MOV SI,-1
MOV AL,20H
NEXT:INC SI
CMP AL,STR[SI]
LOOPNE NEXT
JNZ ND
ND:…
设有关寄存器及存储单元的内容如下:
DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=10H,[20101H]=30H,[20102H]=50H,
[20103H]=70H,[21200H]=3AH,[21201H]=5CH,[21202H]=0B8H,[21203H]=60H
试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
MOV AX,18000H
MOV AX,BX
MOV BX,[1200H]
MOV DX,1100[BX]
MOV [BX][SI],AL
MOV AX,1100[BX][SI]
ANSWER:
(1)AX=1800H
(2)AX=BX=0100H
(3)BX=[2000H×10H+1200H]=[21200H]=5C3AH
(4)DX=[2000H×10H+0100H+1100H]=[21200H]=5C3AH
(5)AL=[2000H×10H+0100H+0002H]=[20102H]=50H
(6)AX=[2000H×10H+0100H+1100H+0002H]=[21202H]=00600B8H
将存放在0A00H单元和0A02H单元的两个无符号数相乘,结果存放在地址为0A04H开始的单元中。
MOV AL,[0A00H]
MOV BL,[0A02H]
MUL BL
MOV [0A04H],AX
编程序将AX中的数,最高位保持不变,其余全部左移4位。
MOV BX,AX
AND BX,8000H
MOV CL,4
SHL AX,CL
AND AX,7FFFH
OR AX,BX
将0400H单元中的数,低4位置零,高4位保持不变。
MOV AL,[0400H]
AND BL,0FH
MOV [0400H],AL
屏幕上显示“”
DATA SEGMENT
STRR DB $
DATA ENDS
STACK SEGMENT
DB 200 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
LEA DX,STRR
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
8、
DATA SEGMENT
X DB 15
Y DB 34
Z DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,X
MUL AL
MOV BX,AX
MOV AL,Y
MUL AL
ADD AX,BX
SHR AX,1
MOV Z,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
9、已知用压缩BCD码表示数a,b,c,d,Z=(a+b)-(c+d),写出程序。
MOV AL,c
MOV BL,d
ADD AL,BL
DAA
MOV BL,AL
MOV AL,a
MOV DL,b
ADD AL,DL
DAA
SUB AL,BL
DAS
MOV Z,AL
10、已知在数据段2000H单元存储一无符号数(字节),若该数大于等于55H,存入BL中,否则存入[2010H]。
MOV AL,[2000H]
CMP AL,55H
JNC DAS
XAO:MOV [2010H],AL
JMP ED
DAS:MOV BL,AL
ED:…
11、寄存器AL低3位D2,D1,D0中有一位是1时,程序将转向其相应的地址AD2,AD1,AD0。
…
AND AL,07H
TEST AL
原创力文档

文档评论(0)