1.试分析下列程序段 ADD AX, BX JNC L2 SUB AX, BX JNC L3 JMP SHORT L5 如果AX、BX的内容给定如下: AX BX (1)14C6H 80DCH (2)B568H 54B7H 问该程序在上述情况下执行后,程序转向何处? 解 (1)转向L2 因为(AX)+(BX)没有进位。 (2)转向L5 因为(AX)+(BX)=0A1FH,有进位。 然后(AX)-(BX)有进位
1.试分析下列程序段: ADD AX,BX JNC L2 SUB AX,BX JNC L3 JMP SHORT L5 如果AX、BX的内容给定如下: AX BX (1)14C6H 80DCH (2)B568H 54B7H 问该程序在上述情况下执行后,程序转向何处? 解: (1)转向L2 因为(AX)+(BX)没有进位。 (2)转向L5 因为(AX)+(BX)= 0A1FH,有进位。 然后(AX)-(BX)有进位
2.编写程序,使用三种以上的方法,将存储器中2000H开始的地 址单元中的100字节数据复制到3000H开始的存储器地址单元中。 (1)利用通用传送指令MoV、(2)利用交换指令 XCHG MOV SI, 2000H MOV SI, 2000H MOV DI, 3000H MOV DI, 3000H MOV CX, 100 MOV CX, 100 AA: MOV AL, [] MOV [DI],AL AA:MOAL,[S门 XCHG[D巧,AL INC SI ING INC SI C DI INC DI LOOP AA LOOP AA HLT HLT
2. 编写程序,使用三种以上的方法,将存储器中2000H开始的地 址单元中的100字节数据复制到3000H开始的存储器地址单元中。 (1)利用通用传送指令MOV MOV SI,2000H MOV DI,3000H MOV CX,100 AA:MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP AA HLT (2)利用交换指令 XCHG MOV SI,2000H MOV DI,3000H MOV CX,100 AA: MOV AL,[SI] XCHG [DI],AL INC SI INC DI LOOP AA HLT
(3)利用换码指令XLAT MOV BX, 2000H MOV DI,3000H(4)利用堆栈实现数据传送 MOV CX 100 MoVS工,2000H MOV DI, 3000H AA: XOR ALAL XLAT MOV CX 50 MOV [DIL, AL AA: PUSH ISII POP [DI] INC BX INC SI INC SI INcD工 INCD工 LOOP AA INcD工 LOOP AA HLT HLT
(3)利用换码指令XLAT MOV BX,2000H MOV DI,3000H MOV CX,100 AA: XOR AL,AL XLAT MOV [DI], AL INC BX INC DI LOOP AA HLT (4)利用堆栈实现数据传送 MOV SI,2000H MOV DI,3000H MOV CX,50 AA: PUSH [SI] POP [DI] INC SI INC SI INC DI INC DI LOOP AA HLT
(5)利用串操作指令 REP MOVSB MoVS工,2000H MOV DI, 3000H MOV CX, 100 CLD DF=0,SI、DI自动+1 REP MOVSB HLT 3在DATA开始的4个单元中存放着一个32位数,求出其中的“1” 的个数,并存入 COUNT单元中。 DATA SEGMENT DATAI DB FEH, 86H, 7CH, 35H COUNT DB OOH DATA ENDS STACK SEGMENT DB 100 DUP(? STACK ENDS
(5)利用串操作指令REP MOVSB MOV SI,2000H MOV DI,3000H MOV CX,100 CLD ;DF=0,SI、DI自动+1 REP MOVSB HLT 3. 在DATA开始的4个单元中存放着一个32位数,求出其中的“1” 的个数,并存入COUNT单元中。 DATA SEGMENT DATA1 DB FEH,86H,7CH,35H COUNT DB 00H DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS
CODE SEGMENT ASSUME CS: CODE, DS: DATA, SS: STACK START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV MOV SI, OFFSET DATAI MOV BX, SI MOV DX,SI+2 MOV X,16 XOR AL, AL LPI RCR DX INC LP2 INC AL LP2 LOOP LPI MOV CX.16 LP3 RCR BC JNC LP4 INC AL LP4 LOOP LP3 MOV COUNT, AL MOV AH, 4CH INT 21H HLT
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SI,OFFSET DATA1 MOV BX,[SI] MOV DX,[SI+2] MOV CX,16 XOR AL,AL LP1: RCR DX JNC LP2 INC AL LP2: LOOP LP1 MOV CX,16 LP3: RCR BC JNC LP4 INC AL LP4: LOOP LP3 MOV COUNT,AL MOV AH,4CH INT 21H HLT