微机原机题库分析选择题 联系客服

发布时间 : 星期三 文章微机原机题库分析选择题更新完毕开始阅读

MAIN PROC FAR

ASSUME CS:CSEG, DS:DSEG,SS:SSEG START: MOV AX,SSEG MOV SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA

RETN: MOV AH,4CH INT MAIN ENDP

HTOA PROC CMP JLE PUSH PUSH MOV MOV AND MOV POP MOV SHR CALL B1: POP B2: ADD JL ADD PRT: MOV MOV INT RET HTOA ENDP CSEG ENDS

END 解:

1000:0F2H 1000:0F4H 1000:0F6H 1000:0F8H 1000:0FAH 1000:0FCH 1000:0FEH

21H NEAR

AX,15 B1 AX BP

BP,SP

BX,[BP+2] BX,0FH [BP+2],BX BP

CL,4 AX,CL HTOA AX

AL,30H PRT

AL,07 DL,AL AH,2 21H START B1 3 B1 2 B1 1 RETN 33

1000:100H

05 0016 0402 0402 03 4 汇编语言及其程序设计 写出分配给下列中断类型号在中断向量表中的物理地址。 (1) INT 12H (2) INT 8 解:

(1) 00048h (2) 00020h

05 0017 0402 0402 01 10 汇编语言及其程序设计 给定(SP)=0100,(SS)=0300,(FLAGS)=0240,存储单元的内容为(00020)=0040,(00022)=0100,在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT 8,试问执行INT 8指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么? 解:

(SP) = 00FA (SS) = 0300 (IP) = 0040

(FLAGS) = 0040 堆栈内容:

00A1H 0900H 0240H

05 0018 0601 0601 02 10 输入/输出接口技术

设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。 解:

MOV AL,80H OUT 200H,AL IN AL,203H MOV BL,AL

IN AL,203H, MOV BH,AL MOV AX,BX

05 0019 0402 0402 02 8 汇编语言及其程序设计 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。在以上条件下,分别写出下列指令或指令段执行后的结果? (1) LDS SI,[BX][DI] MOV [SI],BX

(2) XCHG CX,[BX+32] XCHG [BX+20H][SI],AX

34

解:

(1)SI=00F6H (1E4F6H)=0024H

(2)CX=00F6H (09226H)=5678H; AX=5678H (09226H)=1234H

05 0020 0402 0402 02 8 汇编语言及其程序设计 数据段定义如下:

DATA SEGMENT AT 2000H ORG 30H

VAR1 DW 10 DUP(?) VAR2 DB 10 DATA ENDS

分析下列指令执行后寄存器的结果:

MOV AX,SEG VAR1 ;AX=( ) MOV BX,OFFSET VAR1 ;BX=( ) MOV CX,OFFSET VAR2 ;CX=( ) MOV DX, VAR2 ;DX=( ) 解:

AX=2000H BX=0030H CX=003AH DX=0AH

05 0021 0402 0402 02 6 8086/8088指令系统 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。在以上条件下,分别写出下列指令或指令段执行后的结果? MOV CL,[BX+20H][SI]; MOV [BP][DI],CX; LEA BX,[BX+20H][SI] MOV AX,[BX+2]; 解:

1.(1)CL=F6H (2)(1E4F6H)=5678H (3) BX=0056H AX=1E40H

05 0022 0402 0402 03 4 8086/8088指令系统 请写出下列指令单独执行后,有关寄存器及存储单元的内容。

假设指令执行前(DS)=(ES)=3000H, (AX)=2000H, (BX)=1200H, (SI)=2, (31200H)=2400H, (31202H)=90F7H。 (1)ADD ES:[BX],900H (2)SUB [BX+SI],AX 解:

(1)(31200H)=2D00H (2)(31202H)=70F 7H

05 0023 0302 0302 03 8 8086/8088指令系统

设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?

(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H] (4) MOV AX,

35

VAL 解:

(1) MOV AX,21H

立即寻址,源操作数直接放在指令中 (2) MOV AX,BX

寄存器寻址,源操作数放在寄存器BX中 (3) MOV AX,[1000H]

直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H (4) MOV AX,VAL

直接寻址,EA = [VAL] = 0050H,PA = (DS)×10H+EA = 2000H×10H+0050H = 20050H

05 0024 0302 0302 02 12 8086/8088指令系统

设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?

(1) MOV AX,[BX] (2) MOV AX,ES:[BX] (3) MOV AX,[BP] (4) MOV AX,[SI] 解:

(1) MOV AX,[BX] 寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA= 2000H×10H+0100H = 20100H (2) MOV AX,ES:[BX] 寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA= 2100H×10H+0100H = 21100H (3) MOV AX,[BP] 寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA= 1500H×10H+0010H = 15010H (4) MOV AX,[SI] 寄存器间接寻址,EA =(SI)=00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H

05 0025 0302 0302 02 12 8086/8088指令系统

设(DS)=2000H,(ES)=2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?

(1) MOV AX,[BX+10] (2) MOV AX,VAL[BX] (3) MOV AX,[BX][SI] (4) MOV AX,VAL[BX][SI] 解:

(1) MOV AX,[BX+10]

相对寄存器寻址,EA =(BX)+10D = 0100H+000AH = 010AH,PA= (DS)×10H+EA = 2000H×10H+010AH = 2010AH (2) MOV AX,VAL[BX]

相对寄存器寻址,EA =(BX)+[VAL]= 0100H+0050H= 0150H,PA= (DS)×10H+EA = 2000H×10H+0150H = 20150H (3) MOV AX,[BX][SI]

基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H+01A0H = 201A0H (4) MOV AX,VAL[BX][SI]

36