作业评讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.22
百度文库
MOV AL,STATUS MOV BL,0 AND AL,00101010B AGAIN: AND AL,AL JZ ROUT4 SHR AL,1 JNC AGAIN INC BL JMP AGAIN CMP BL,1 JE ROUT1 CMP BL,2 JE ROUT2 JMP ROUT3 ROUT1:
3.1(2)MOV [BP][DI],CX
指令的功能是将寄存器CX中的数据传送 到内存单元 SS:BP+DI=SS:0056H=09226H 已知(09226H)=00F6H, 该指令运行后, (09226H)=CX=5678H 注意:若用寄存器BP间接寻址,则数据 默认在堆栈段内。
3.1(3)
第5章
5.1 (1)64片,11位地址作为片外译码 (2)1024片,10位地址作为片外译码 (3) 64片,9位地址作为片外译码 (4) 32片,4位地址作为片外译码
5.2
4k * 8 4 *1024 * 8 16 512 * 4 512 * 4
512=29,故每块芯片需要9条寻址线。 4K=22*210=212,故4KB系统需要12条寻址线。
3.2(2)
MOV AX,[1352H]
指令的功能是将内存 DS:1352H=11352H 中的数据传送到AX. 已知:(11352H)=0FFH,但由于AX为字, 故需从内存中取2个字节组合形成一个字, 因此11352H和其后的地址为11353H的两 个内存单元形成的字数据为26FFH. 指令运行后,AX=26FFH
4.20
DATA SEGMENT A1 N A2 SL DATA DB ‘…’ EQU $-A1 DB N DUP(?) DB ? ENDS
CODE
SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,A1 LEA DI,A2 MOV CX,N MOV AL,[SI] CMP AL,’a’ JB AGAIN CMP AL,’z’ JA AGAIN INC DL MOV [DI],AL INC DI AGAIN: INC BX LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START
XCHG CX,[BX+32H] XCHG [BX+20H][SI],AX
第1条指令的功能是内存单元 DS:BX+32H=09226H 中的数据和CX相交换。指令运行后, CX=(原09226H)=00F6H (09226H)=(原CX)=5678H 第2条指令的功能是将AX和内存单元 DS:BX+20H+SI=09226H 相交换,指令运行后, AX=(09226H)=5678H(注意,在上一条指令中, 09226H单元的数据已变为5678H.) (09226H)=(原AX)=1234H
4.17 MOV AL,X CMP AL,0 JGE Y1 NEG AL Y1: MOV Y,AL HLT
4.18
MOV CX,20 MOV AX,0 LEA BX,SUM NEXT:ADD AX,[BX] INC BX INC BX LOOP NEXT MOV SUM,AX HLT
4.19
DATA SEGMENT BUF DB 12H ASC DB ?,? DATA ENDS
3.2(6)
ADD [SI],CX
指令的功能是将内存单元 DS:SI=11354H 的字数据与CX中的字数据相加,再将相 加后的结果存在11354H内存单元中。 已知:(11354H)=52H, (11355H)=0E7H, 形成的字为:E752H 指令运行后: (11354H)=0ECH, (11355H)=1AH,SF=0,ZF=0,PF=0,CF=1, OF=0
4.15
AL寄存器: D7 D6 D5 D4 D3 D2 D1 D0 程序执行后的AL寄存器变为: D0 D1 D2 D3 D4 D5 D6 D7
编程思路: 将AL逻辑左移1位,最高位D7位被移 出,移到CF。再将寄存器AH带进位 的循环右移1次,将最低位移到CF, 原CF被移到最高位。继续这一过程, 共需移位8次即可实现。
3.2(4)
MOV AX,0150H[BP]
指令的功能是将内存单元 SS:0150H+BP=21350H 中的字数据传送到AX中。 已知:(21350H)=88H, (21351H)=51H, 指令运行后, AX=5188H
3.2(5)
POP AX
指令的功能是将堆栈栈顶 SS:SP=21350H 的字数据弹出到AX中,再将SP+2→SP。 已知:(21350H)=88H, (21351H)=51H, SP=1350H. 指令运行后: AX=5188H,SP=1352H
3.4 (1) MOV BL,85H;BL=85H MOV AL,17H;AL=17H ADD AL,BL;AL=9CH DAA;调整, 9CH+06H=A2H,A2H+60H=02H,CF=1 故AL=02H,BL=85H,CF=1
3.4(2) MOV AX,BX;AX=BX NOT AX;AX取反后,原来数据中的0变为1,1变为0 ADD AX,BX;AX=FFFFH,CF=0 INC AX;AX=0,CF不变,仍为0 故AX=0,CF=0
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF MOV CL,4 SHR AL,CL ADD AL,30H MOV ASC,AL MOV AL,BUF AND AL,0FH ADD AL,30H MOV ASC+1,AL MOV AH,4CH INT 21H CODE ENDS END START
3.4(4) MOV BX,0FFFEH MOV CL,2 SAR BX,CL SAR为算术右移,低位移出到CF中,高位用符号位填 充。 故运行结果为:BX=0FFFFH,CF=1
3.6 (1)0 (2)1 (3)-1
3.10 BX=0F00H,CF=0 3.11 (1) AX (2)带符号数
3.2(7)
SUB BH,0150H[BX][SI]
指令的功能是将BH中的字节数据与 DS:0150H+BX+SI=126A4H 中的字节数据相减,再将相减后的结果 存在BH中。 已知:BH=12H,(126A4H)=9DH, 指令运 行后: BH=75H ,SF=0,ZF=0,PF=0,CF=1,OF=0
3.2(11) SAL BYTE PTR 0150H[BX],1
指令的功能是将内存单元 DS:0150H+BX=11350H 中的字节数据算术左移1次,再将移位后的结 果存到11350H内存单元中。 已知:(11350H)=0A5H 指令运行后, (11350H)=4AH,CF=1,OF=1
作业评讲
第3章
3.1(1)MOV CL,[BX+20H][SI]
指令的功能是将内存单元 DS:BX+20H+SI=DS:0056H=09226H 的字节数据传送到CL寄存器。 已知(09226H)=00F6H,按高高低低的存 放原则, 09226H单元的数据应为其低字 节,故(09226H)=F6H 故运行后,CL=(09226H)=F6H
3.2(10) SAR BYTE PTR 0150H[BX],1
指令的功能是将内存单元 DS:0150H+BX=11350H 中的字节数据算术右移1次,再将移位后的结 果存到11350H内存单元中。 已知:(11350H)=0A5H 指令运行后, (11350H)=0D2H,CF=1,OF=0
3.2(9)
INC WORD PTR 0152H[BX]
指令的功能是将内存单元 DS:0152H+BX=11352H 中的字数据加1,再将加1后的结果存在 11352H内存单元中。 已知:(11352H)=0FFH, (11353H)=26H指令运 行后: (11352H)=00H,(11353H)=27H,CF=0(或不变)
3.2(3)
MOV 0150H[BX],CH
指令的功能是将CH中的字节数据传送到 DS:0150H+BX=11350H 内存单元中。 已知:CX=339AH,故CH=33H 指令运行后, (11350H)=33H,(11351H)=3CH 注意:指令对11351H内存单元的数据没 有影响,它仍是原来的值。
3.2(8)
INC BYTE PTR 0152H[BX]
指令的功能是将内存单元 DS:0152H+BX=11352H 中的字节数据加1,再将加1后的结果存 在11352H内存单元中。 已知:(11352H)=0FFH, 指令运行后: (11352H)=00H,(11353H)=26H,CF=0(或 不变)
MOV AL,23H MOV AH,00H MOV CX,8 NEXT:SHL AL,1 RCR AH,1 LOOP NEXT MOV AL,AH
4.16 MOV CX,26 LEA BX,CHAR MOV AL,’A’ NEXT:MOV [BX],AL INC BX INC AL LOOP NEXT HLT
ROUT2:
ROUT3: ROUT4:
4.23
CODE SEGMENT START: MOV AX,DATA MOV DS,AX DATA SEGMENT LEA BX,STRING STRING DB ‘STUDENT HELLO$’ NEXT: MOV AL,[BX] POST DB ? CMP AL,20H DATA ENDS JE SAVE INC SI CMP AL,’$’ JE EXIT JMP NEXT SAVE: MOV POST,BL JMP OVER EXIT: MOV POST,-1 OVER: MOV AH,4CH INT 21H CODE ENDS END START
5.3
地址范围:FF000H-FFFFFH 存储容量:4KB
5.4 RAM存储容量为:2KB 地址范围为:F9000H-F97FFH(或F98000HF9FFFH) EPROM存储容量为:4KB 地址范围为:FD000H-FDDFFH
ARRAYW
34H 12H 05H
第4章
ARRAYB
63 63H
00H
42H
4.1
41H
42H 43H 44H
41H
44H 43H ?
?
? ? 1
?
01H 00H 03H
3
1 3
00H
01H 00H 03H
00H
4.2 38(或26H) 4.6 002CH 4.7 16 4.9 (1) DA1 DB 20H DUP(2,3,10 DUP(4),7) (2) DA2 DW ‘TS’,’DU’,’NE’,’ST’ (3) COUNT EQU DA2-DA1
LEA BX,[BX+20H][SI] MOV AX,[BX+2]
第1条指令的功能是内存单元的有效地址 传送到BX中。指令运行后, BX=BX+20H+SI=0056H 第2条指令的功能是将内存单元 DS:BX+2=09228H 中的数据传送到AX,指令运行后, AX=(09228H)=1E40H
3.1(5)
4.10
4.11 4.12
MOV CX,10 AAA MOV CX,CUNT ADD AL,30H 字符串中$的个数
4.13
XCHG SI,DI XCHG SI,DI 4.14 (1)测试AL,BL中的数据的正负, 若符号不相同,则交换两寄存器;若符号相 同,则不改变两寄存器中的数据。 (2)AL=77H,BL=9AH
3.4(3)
MOV AX,0FF60H;AX=FF60H STC;CF=1 MOV DX,96;DX=0060H,因此DH=00H,DL=60H XOR DH,0FFH;DH=FFH,CF=0 SBB AX,DX;AX-DX-CF=FF60H-FF60H-0=0,由于 相减过程并未产生借位,故CF=0 上述指令段运行后,AX=0,CF=0