发布时间 : 星期日 文章微机原理作业及参考答案更新完毕开始阅读b97d34d226fff705cc170a67
3-12 (1) CL=0F6H (2) CX=5678h (3)BX=0056H, AX=1E40H
(4)SI=00F6H, [SI]=0024H (5)AX=5678H, [09226H]=1234H
3-14 (1)MOV AX,0 XOR AX,AX SUB AX, AX (2)MOV CL,4
ROR BL,CL
(3) MOV AX,N1 MOV BX,N1
CWD ;对被除数进行符号扩展 IDIV BX
MOV M1,AX ;商放在AX中 MOV M2,DX ;余数放在DX中 (4) AND BX,0F7AFH 或 OR 0850H (5) XOR AX 4020H (6) TEST DX,0201H (7) OR CX,1
3-17
NUM1 DW 4148H,2816H
NUM2 DW 2258H,8452H (1) MOV AX,NUM2 ADD NUM1,AX MOV AX,NUM2+2 ADD NUM1+2,AX (2) RES DB 2DUP(?)
MOV AL,BYTE PTR NUM1 ADD AL,BYTE PTR NUM1+1 ADD AL,BYTE PTR NUM1+2 ADD AL,BYTE PTR NUM1+3 MOV RES,AL
(3) 假设存放的数据为无符号数 MOV SI,OFFSET NUM1 XOR AX,AX MOV CX,8 LP:ADD AL,[SI] ADC AH,0 INC SI LOOP LP MOV RES,AL
MOV RES+1,AH
假设存放的数据为带符号数 MOV SI,OFFSET NUM1 XOR BX,BX MOV CX,8 LP:MOV AL,[SI] CBW ADD BX,AX INC SI LOOP LP MOV RES,AL MOV RES+1,AH (4) MOV AX,NUM1 ADD NUM2,AX MOV AX,NUM1+2 ADC NUM2+2,AX 3-18 (1)
XOR AX, AX ;AX清零
LEA SI, NUM1 MOV CX, 8
LOP: ADD AL, [SI] DAA
ADC AH, 0 ;AF清零 INC SI LOOP LOP MOV RES, AL
MOV RES+1, AH MOV AL, NUM1 SUB AL, NUM2
DAS
MOV RES, AL
差=90H; CF=1
3-21
(1)BX=9AH (2)BX=61H (3)BX=8071H (4)BX=10F7H (5)BX=0FF1CH 3-22
3-23
(1)将自FIRST开始的存储区中的连续10个字节传送到从SECOND开始的存储区中。 (2)将自0404H开始的存储区中连续256个字节全部赋0值。 3-26 MOV BX,0A80H MOV AL,5
XLAT
3-27
(1)IP=1256H (2)IP=3280H 3-28
CS=2000H; IP=009AH; 3-29
MOV BL,AL CMP AL,01H JZ LAB1 CMP AL,02H JZ LAB2 CMP AL,04H JZ LAB3 AND BL,07H JNZ OK ……
[SP+1]=3DH; [SP+2]=50H;
(3)IP=2450H
SP=0F178H; [SP]=8FH
[SP+3]=40H;
OK: …… LAB1: …… LAB2: …… LAB3: …… 3-31
MOV AX,0032H CMP AX,X JL N_HIGH MOV BX,X SUB BX,Y JO OVERFLOW JNS NEXT
NEG BX
NEXT: MOV RESULT,BX
N_HIGH: …… OVERFLOW: ……
第四章 汇编语言程序设计(P195)
4-2 内存分配和预置数据
VAR1 DB 12,-12H,3 DUP(0,0FFH)
VAR2 DB 100 DUP(0,2 DUP(1,2),0,3)
VAR3 DB ‘WELCOME TO’ VAR4 DW VAR3+6 ;取其偏移量给VAR4 VAR5 DD VAR3 ;取其偏移量和段基址给VAR5 4-3
(1)DATA1 DB 86H,27H,23H,00H,24H,1AH (2)DATA2 DW 0B430H,1062H
(3)DATA3 DB 4DUP(20H),20,0,6DUP(1,2) 4-4 (1)2 (2)2 (3)1 (4)10
4-5
(1)VAR1的偏移量是0030H;VAR2的偏移量是003AH (2)CNT=0010H
(3)VAR2+2单元的内容是02H 4-10 DATA X Y Z
SEGMENT DB 4 DUP(?) DB 4 DUP(?) DB 4 DUP(?),0
ENDS
;定义X,Y,Z为字节变量
DATA
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV AX,WORD PTR X[0] ADD AX,WORD PTR Y[0] ;X,Y低16位相加 MOV WORD PTR Z[0],AX ;结果存入Z的低16位
MOV ADC MOV JNC OK
AL,1 Z+4,AL AH,4CH
;保存进位
AX,WORD PTR X[2]
AX,WORD PTR Y[2] ;X,Y高16位相加 WORD PTR Z[2],AX ;结果存入Z的高16位
MOV MOV OK: MOV
INT 21H CODE
ENDS
START
END