微型计算机原理与接口技术版简答题内容摘要:
0H+0A0H =291A0H; ( 12)在指令 MOV AX, [BP][SI] 中,源操作数字段的寻址方式是基址变址寻址,其物理地址值 =( SS) *10H+( BP) +( SI) =15000H+10H+0A0H =150B0H。 ( 1) MOV SI, 200 ( 2) MOV CX, DATA[SI] ( 3) ADD AX, [BX+DI] ( 4) AND AX, BX ( 5) MOV [SI], AX ( 6) PUSHF 答: ( 1)目的操作数字段的寻址方式是寄存器寻址,源操作数字段的寻址方式是立即数寻址; ( 2)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是寄存器相对寻址; ( 3)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是基址变址寻址; ( 4)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式也是寄存器寻址; ( 5)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址; ( 6)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址; MOV AX, 2020H 和 MOV AX, DS:[2020H] 的区别。 答: 指令 MOV AX, 2020H是将立即数 2020H送 AX寄存器,而指令 MOV AX, DS:[2020H]是将 DS段有效地址为 2020H 的两个单元的内容送 AX。 ( 1) MOV AL, [BX+5] ( 2) MOV [BP+5], AX ( 3) INC BYTE PTR [SI+3] ( 4) MOV DL, ES:[BX+DI] ( 5) MOV BX, [BX+SI+2] 答: ( 1)指令 MOV AL, [BX+5]中内存操作数的所在地址 =( DS) *10H+( BX) +5; ( 2)指令 MOV [BP+5], AX 中内存操作数的所在地址 =( SS) *10H+( BP) +5和( SS) *10H+( BP) +6; ( 3)指令 INC BYTE PTR[SI+3]中内存操作数的所在地址 =( DS) +( SI) +3; ( 4)指令 MOV DL, ES:[BX+DI]中内存操作数的所在地址 =( ES) *10H+( BX)+( DI); ( 5)指令 MOV BX, [BX+SI+2]中内存操作数的所在地址 =( DS) *10H+( BX) +( SI) +2和( DS) *10H+( BX) +( SI) +3; ,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令 ((8)、 (13)除外 )期望实现的操作。 ( 1) MOV AL, BX ( 9) MOV ES, 3278H ( 2) MOV AL, SL ( 10) PUSH AL ( 3) INC [BX] ( 11) POP [BX] ( 4) MOV 5, AL ( 12) MOV [1A8H], 23DH ( 5) MOV [BX], [SI] ( 13) PUSH IP ( 6) MOV BL, F5H ( 14) MOV [AX], 23DH ( 7) MOV DX, 2020H ( 15) SHL AX, 5 ( 8) POP CS ( 16) MUL AX, BX 答: ( 1) MOV AL,BX 错,源操作数为字类型,目的操作数为字节类型,二者不一致。 应改 为: MOV AX,BX 或 MOV AL,BL ; ( 2) MOV AL,SL 错, SI寄存器不能分为高 8位和低 8位使用,即没有 SL 寄存器。 应改为: MOV AX,SI ( 3) INC [BX] 错,未指定操作数的类型。 应改为: INC BYTE PTR [BX] ( 4) MOV 5,AL 错,目的操作数使用了立即数,在指令中一般不允许。 应改为:MOV DS:[5],AL ( 5) MOV [BX],[SI] 错,源操作数和目的操作数均为内存单元 ,不允许。 应改为: MOV AX,[SI] MOV [BX],AX ( 6) MOV BL,F5H 错,源操作数错,以 A~ F 开头的数字前应加 0。 应改为: MOV BL,0F5H ( 7) MOV DX,2020H 正确。 ( 8) POP CS 错,不能将栈顶数据弹至 CS中。 ( 9) MOV ES, 3278H 错,立即数不能直接送 ES 寄存器。 应改为: MOV AX,3278H MOV ES,AX ( 10) PUSH AL 错,栈操作不能按字节进行。 应改为: PUSH AX ( 11) POP [BX] 正确。 ( 12) MOV [1A8H],23DH 错,源操作数是立即数,目的操作数必须使用寄存器指出。 应改为: MOV BX, 1A8H MOV [BX],23DH ( 13) PUSH IP 错,不能用 IP寄存器做源操作数。 ( 14) MOV [AX],23DH 错,不能用 AX 寄存器间接寻址。 应改为: MOV BX, AX MOV [BX], 23DH ( 15) SHL AX,5 错,不能用大于己于 1 的立即数指出移位位数。 应改为: MOV CL, 5 SHL AX, CL ( 16) MUL AX,BX 错,目的操作数 AX 是隐含的,不能在指令中写出。 应改为:MUL BX SP的初值为 2020H, AX=3000H, BX=5000H,试问 : ( 1)执行指令 PUSH AX 后 (SP)=。 ( 2)再执行 PUSH BX 及 POP AX 后 (SP)=。 (AX)=。 (BX)=。 答: ( 1)执行指令 PUSH AX 后 (SP)=2020H2=1FFEH。 ( 2)再执行 PUSH BX 及 POP AX 后 (SP)=1FFEH, (AX)=5000H, (BX)=5000H [2020H]送 [1000H]中,用指令 :MOV [1000H], [2020H]是否正确。 如果不正确,应用什么方法。 答: 把 [2020H]送 [1000H]中,用指令 MOV [1000H], [2020H]不正确,应改为:MOV AX,[2020H] MOV [1000H],AX 200 中减去 AL 中的内容,用 SUB 200, AL是否正确。 如果不正确,应用什么方法。 答: 想从 200 中减去 AL 中的内容,用 SUB 200, AL不正确,应改为: MOV BL,200 SUB BL,AL 12分别写出实现如下功能的程序段 (1)双字减法(被减数 7B1D2A79H,减数 53E2345FH)。 (2)使用移位指令实现一个字乘 18 的运算。 (3)使用移位指令实现一个字除以 10 的运算。 (4)将 AX 中间 8位, BX 低四位, DX高四位拼成一个新字。 (5)将数据段中以 BX为偏移地址的连续四个单元的内容颠倒过来 (6)将 BX 中的四位压缩 BCD 数用非压缩 BCD 数形式顺序放在 AL、 BL、 CL、 DL中。 答: (1)双字减法的程序段是: MOV AX, 2A79H ;被减数的低位字送 AX SUB AX, 345FH ;低位字相减,结果送 AX MOV BX, 7B1DH ;被减数的高位字送 BX SBB BX, 53E2H ;高位字相减处并减去低位字相减产生的借位,结果送 BX (2)使用移位指令实现一个字乘 18 的程序段是: MOV AX, 05F7H ;被乘数送 AX SHL AX, 1 ;被乘数乘以 2,结果在 AX 中 MOV BX, AX ;被乘数乘以 2的结果暂存到 BX MOV CL, 3 ;设置移位位数 3 SHL AX, CL ;被乘数再乘以 8(共乘以 16),结果在 AX 中 ADD AX, BX ;被乘数再乘以 18,结果在 AX 中 (3)使用移位指令实现一个字除以 10 的运算,必须将 X/10 拆分成多项的和,而每一项都应是非的某次幂的倒数。 利用等比级数的前 N项和公式,可求出 A0=X/8,公比 Q=1/4,故 X/10=X/8X/32+X/128X/512+..., 所求的程序段是: MOV AX,FE00H ;被除数送 AX MOV CL,3 ;设置移位位数 3 SHR AX,CL ;被乘数除以 8,结果在 AX 中 MOV BX,AX ;被乘数除以 8的结果暂存到 BX MOV CL,2 ;设置移位位数 2 SHR AX,CL ;被乘数除以 4(累计除 32),结果在 AX中 SUB BX,AX ;被除数 /8被除数 /32,结果在 BX 中 MOV CL,2 ;设置移位位数 2 SHR AX,CL ;被乘数除以 4(累计除 128),结果在 AX 中 ADD BX,AX ;被除数 /8被除数 /32+被除数 /128,结果在 BX 中 MOV CL,2 ;设置移位位数 2 SHR AX,CL ;被乘数除以 4(累计除 512),结果在 AX 中 SUB BX,AX ;被除数 /8被除数 /32+被除数 /128被除数 /512,结果在 BX中 (4) 将 AX 中间 8位, BX低四位, DX 高四位拼成一个新字的程序段是: AND DX,0F000H ;将 DX的低 12 位清零,高 4位不变 AND AX,0FF0H ;将 AX的低 4 位清零,高 4位清零,中间 8 位不变 AND BX,0FH ;将 BX的高 12 位清零,低 4位不变 ADD AX,BX ADD AX,DX ;按要求组成一个新字,结果放在 AX 中。 (5) 将数据段中以 BX 为偏移地址的连续四个单元的内容颠倒过来的程序段是: MOV AL,[BX] ;数据段中 BX 为偏移地址的字单元内容送 AX XCHG AL,[BX+3] ;数据段中 BX+3 为偏移地址的字单元内容与 AX 的内容交换 MOV [BX],AL ;数据段中 BX+3 为偏移地址的字单元内容送 BX 为偏移地址的字单元 MOV AL,[BX+1] ;数据段中 BX+1 为偏移地址的字单元内容送 AX XCHG AL,[BX+2] ;数据段中 BX+2 为偏移地址的字单元内容与 AX 的内容交换 MOV [BX+1],AL ;数据段中 BX+2 为偏移地址的字单元内容送 BX+1 为偏移地址的字单元 (6)将 BX 中的四位压缩 BCD 数用非压缩 BCD 数形式顺序放在 AL、 BL、 CL、 DL中的程序段是: MOV DL,BL ;四位压缩 BCD 数的低位字节送 DL AND DL,0FH ; DL 的高 4位清零,得四位非压缩 BCD 数的最低位,放入 DL中 MOV CL,4 ;设置移位位数 4 SHR BX,CL ; BX中的数据逻辑右移 4 位,使四位压缩 BCD 数的次低位位于BL的低 4位 MOV CH,BL ;将 BL 的内容暂存到 CH中保留 AND CH,0FH ; CH 的高 4位清零,得四位非压缩 BCD 数的次低位,放 CH 中 MOV CL,4 ;设置移位位数 4 SHR BX,CL ; BX中的数据逻辑右移 4 位,使四位压缩 BCD 数的次高位位于BL的低 4位 MOV AL,BL ;将 BL 的内容暂存到 AL中保留 AND BL,0FH ; BL 的高 4位清零,得四位非压缩 BCD 数的次高位,放 BL 中 MOV CL,4 ;设置移位位数 4 SHR AL,CL ;使四位压缩 BCD 数的最高位位于 AL 的低 4 位,得四位非压缩BCD 数的次高 ;位,放入 BL 中 MOV CL,CH ;将四位非压缩 BCD 数的次低位移入 CL 中 OP1, OP2 是已经用 DB 定义的变量 , W_OP3 和 W_OP4 是已经用 DW 定义的变量,判断下列指令书写是否正确。 如有错误,指出错在何处。 并写出正确 的指令(或程序段)实现原错误指令期望实现的操作 ((19)、 (20)不改 )。 (1)PUSH OP1 (2)POP [W_OP4] (3)MOV AX, WORD PTR [SI][DI] (4)MOV AX,WORD PTR ES。微型计算机原理与接口技术版简答题
相关推荐
;查表得: AL = 12H 输入输出指令( Input and Output) IN 指令: 从数据端口输入数据或从状态端口输入状态字。 OUT 指令:输出数据或命令给指定的 I/O 端口。 直接输入输出指令 格式: IN AL, PORT ; AL (PORT) IN AX, PORT ; AX (PORT+1, PORT) OUT PORT, AL ; (PORT)
D ADD 指令对 6 个状态标志均产生影响。 带进位的加法 ADC ADC 指令在形式上和功能上与 ADD 类似,只是 相加时还要包括进位标志 CF 的内容 加 1 指令 INC 格式: INC reg/mem 功能:类似于 C 语言中的 ++操作:对指定的操作数加 1 注:本指令不影响 CF 标志。 减法指令 不考虑借位的减法指令 SUB 考虑借位的减法指令 SBB 减 1指令 DEC
H] (4) MOV AX, VAL (5) MOV AX, [BX] (6) MOV AX, ES: [BX] (7) MOV AX, [BP] (8) MOV AX, [SI] (9) MOV AX, [BX+10] (10) MOV AX, VAL[BX] (11) MOV AX, [BX][SI] (12) MOV AX, VAL[BX][SI] 【解答】 (1) MOV AX, 21H
MOV SI, OFFSET MSR。 设置 SI MOV DI, OFFSET MSD。 设置 DI MOV CX, LEN NEXT: MOV AL, [SI]。 开始传输数据 第 11 页 MOV ES:[DI], AL INC SI INC DI DEC CX JNZ NEXT PUSH ES POP DS。 将附加段寄存器的段值赋给数据段寄存器 MOV DX, OFFSET MSD
i mov ax,d_seg。 为确保访问到字符串 ,重新指定 DS mov ds,ax mov dx,offset msg mov ah,9h。 显示字符串 inc count1 cmp count1,18 jne lessthen1sec inc count mov count1,0 int 21h lessthen1sec: sti iret disp endp。 新的 1ch中段程序结束
1~ 2 2 点火升压至 ,热紧螺栓 1~ 2 3 压力 ~ ,煮炉及排污 8~ 10 4 升压 到 ~ , 煮炉及排污 6~ 8 5 降压到 下排污 2 6 升压到 ~ 下煮炉 3~ 5 7 低点排污 ,连续进行锅炉换水 ,直到锅炉水质达到运行标准 3~ 5 注 :根据现场的实际情况 ,点火升压至 ,热紧螺拴后 ,可采用升压到 ~ 下煮炉 12 小时。 连续进行锅炉换水