PDATA DB 40 DUP(?) NDATA DB 40 DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX , DATA MOV DS, AX MOV ES, AX
LEA SI , BLOCK LEA DI, PDATA LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK
GOON: LODSB
TEST AL, 80H JNZ MINUS STOSB
JMP AGAIN
MINUS: XCHG BX, DI
STOSB
XCHG BX, DI
AGAIN: LOOP GOON RET
EXP1 ENDP CODE ENDS END START
4. 程序改错
(1)保持STATE单元内容的D4、D3两位为“0”,其余六位不变。 AAA: MOV SI,OFFSET STATE
MOV AL,[SI] AND AL,0C0H MOV [SI],AL RET 改正:( )
(2)ST1是DS段中的一个4字节字符串,ST2是ES段中的一个4字节字符串,比较其是否相等;相等置FLAG单元为00H,不等置FLAG单元为11H。 MOV SI,OFFSET ST1
MOV DI,OFFSET ST2 MOV CX,0004 STD
REPNZ CMPSB JZ HHH
MOV AL,11 JMP III
HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:( )( )
5. 以下是完成20个字节字符串的传送,并检测是否正确的程序,若正确标志位放00,
否则放11。完成此程序。 DATSEG SEGMENT
DATAX DB ‘ABCD??RST’ DATAY DB 20 DUP(?) FLAGS DB ? DATSEG ENDS
MOV AX, DATSEG MOV DS, AX MOV ES , AX CLD
MOV SI , OFFSET DATAX MOV DI, OFFSET DATAY MOV CX , 20 REP MOVSB ??
REPE CMPSB JZ HHH MOV AL, 11 JMP III
HHH: MOV AL, 00
III: MOV FLAGS , AL 6. 程序改错
(1)保持STATE单元内容的D4、D3两位为“0”,其余六位不变。
AAA: MOV SI,OFFSET STATE
MOV AL,[SI]
AND AL,0C0H
MOV [SI],AL RET
改正:( )
(2)在BUF开始的50个有符号数中(16位),找出最小值存放在MIN单元中。 MOV BX,OFFSET BUF
MOV CL,31H MOV AX,[BX] BBB: INC BX INC BX
CMP AX,[BX] JNC CCC
MOV AX,[BX] CCC: DEC CX
MOV SI,OFFSET BUF JNZ BBB MOV MIN,AX RET
改正:( ),( )
7. 用1K×4的2114芯片组成2K×8的存储器系统。
8. 用2K×8的2716A存储器芯片组成8K×8的存储器系统。
9. 用1K×4的2114芯片构成lK×8的存储器系统。
12.现有8个字节的数据为34H,45H,56H,67H,78H,89H,9AH,ABH,假定它们在存储器中的物理地址为400A5H-400ACH ,试求各存储单元的有效地址;若从存储器中读出这些数据,试问要访问几次存储器?
各字节的有效地址分别为0085H,0086H,0087H,0088H,008AH,008BH,008CH 8个总线周期
13. 对40个有符号数进行测试,分别把正、负字存放进两段不同单元。给指定语句加标注。
DATA SEGMENT
BLOCK DB 43H,56H,0ABH?? ;共40个字节 PDATA DB 40 DUP(?)
NDATA DB 40 DUP(?) ; DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA EXP1 PROC FAR START: PUSH DS
MOV AX, 0 PUSH AX
MOV AX, DATA MOV DS, AX MOV ES, AX LEA SI, BLOCK
LEA DI, PDATA ; LEA BX, NDATA CLD
MOV CX, PDATA-BLOCK;
GOON: LODSB
TEST AL, 80H
JNZ MINUS ; STOSB
JMP AGAIN
MINUS: XCHG BX, DI ;
STOSB
XCHG BX, DI
AGAIN: LOOP GOON
RET
EXP1 ENDP CODE ENDS END START
14. 程序改错
(1)从4000H开始有20H个带符号数,要求统计出负数的个数送MIN单元。 XOR DI,DI MOV BX,4000H MOV CX,20H AGAIN:MOV AL,[BX] INC BX TEST AL,01H
JNZ GOON INC DI GOON: DEC CX
JNZ AGAIN MOV MIN,DI RET
改正:( ),( )
(2)ST1是DS段中的一个4字节字符串,ST2是ES段中的一个4字节字符串,比较其是
否相等;相等置FLAG单元为00H,不等置FLAG单元为11H。
MOV SI,OFFSET ST1 MOV DI,OFFSET ST2 MOV CX,0004 STD
REPNZ CMPSB JZ HHH MOV AL,11 JMP III
HHH: MOV AL,00 III: MOV FLAG,AL RET 改正:( )( ) 15. 画出容量为8K*8的ROM连接图(CPU用8088,EPROM用2716,R0M地址区从4000H开始)
相关推荐: