bl的h短文

发布时间:2017-02-03 来源: 短文摘抄 点击:

bl的h短文篇一:第3章作业及答案

1. 判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令((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,2000H (15)SHL AX,5

(8)POP CS (16)MUL AX,BX

答:(7)、(11)、(12)正确,其他指令有错误

(1)两操作数类型不匹配,可改为MOV AL,BL或MOV AX,BX

(2)SL寄存器书写错误,原意应为SI,另外两操作数类型不匹配,可改为MOV AX,SI

(3)操作数是字还是字节不明确,可改为INC WORD PTR [BX]或INC BYTE PTR [BX]

(4)立即数不能为目的操作数

(5)两操作数不能同时为存储器寻址,可改为

MOV AX,[SI]

MOV [BX],AX

(6)F5H前应加0,以区别符号变量F5H

(8)CS不能为操作数

(9)立即数不能直接送给段寄存器,可改为

MOV AX,3278H

MOV ES,AX

(10)立即数应为字类型,可改为PUSH AX

(13)IP不能为操作数

(14)AX不能用于寄存器间接寻址,可改为

MOV BX,AX

MOV [BX],23DH

(15)大于1的移动次数不能直接出现在指令中,只能用CL,可改为

MOV CL,5

SHL AX,CL

(16)在MUL指令中AX为隐含操作数,可改为MUL BX

2、MOV AX,BX

NOT AX

ADD AX,BX ;AX=INC AX

HCF=______

3、MOV BL, 02H

MOV AL, 07H

MUL BL; AX=_AAM

___H

4、设寄存器AL,BL,CL中内容均为1CH,执行上述指令序列后,

XOR AL,0FH

AND BL,0FH

OR CL,0FH

,,H。

5、 SALAL, 1

MOV BL, AL

MOV CL, 2

SALAL,CL

ADD AL, BL

回答:程序实现的完整功能是 将AL左移1位(2*AL)后和再左移2位(4*2*AL)相加,结果实现10*AL。

6、 LEA SI,BUFFER

LEA DI,ARRAY

MOV CX,100

XOR BL,BL

LP: CMP [SI],01H

JNZ LP1

INC BL

LP1:INC SI

LOOP LP

MOV [DI],BL

回答:程序实现的完整功能是 从BUFFER开始的连续100个字节单元内容为1的个数保存到ARRAY开始的存储单元中

MOV AX,2000H

MOV DS,AX

MOV SS,AX

MOV BX,2050H

MOV SI,BX

MOV DI,3050H

MOV SI,DI

MOV SP,5FFFH

MOV CL,25

MOV BL,CL

MOV AH,0F0H

MOV CH,AH

MOV BYTE PTR[DI],64

MOV WORD PTR[SI],256

MOV DL,[SI+1]

MOV DH,1[SI]

MOV WORD PTR[BX][SI],34H

MOV [BX+SI+4],BX

MOV BP,2[BX+DI]

MOV [BP][DI],BX

MOV AX,[BP][DI]

MOV BL,AL

MOV ES,BX

PUSH BX

PUSH DI

POP CX POP DX

XCHG AX,BP XCHG DH,BL SAHF CMC LAHF STD CLI PUSHF CLD POPF NOP

bl的h短文篇二:第4章作业

第4章 指令系统

教材习题解答

1. 若DS=3000H,BP=2000H,SI=1000H,[32000H]=00H,[32001H]=40H,SS=3000H,[31000H]=20H,[31001H]=60H,[33000H]=50H,[33001H]=60H,说明下列各条指令执行后,AX中的内容是什么?并说明各条指令中源操作数的寻址方式。

(1) MOV AX,DS (3) MOV AX,[SI]

【解】

(1) AX=3000H 寄存器寻址 (2) AX=4000H 直接寻址 (3) AX=6020H 寄存器间接寻址 (4) AX=4000H 寄存器间接寻址 (5) AX=6020H 基址加变址寻址 2. 指出下列指令中的非法指令。

(1) MOV BX,AL (3) PUSH 4567H

(5) ADD AL,148H (7) MOV BH,SI

【解】非法指令: (1) MOV BX,AL (3) PUSH 4567H (5) ADD AL,148H (7) MOV BH,SI (8) SUB 38H,AL (1) PUSH

BX和AL的长度不一致 CS段寄存器不能作目的操作数 两个存储单元之间不能直接交换数据 运算溢出

立即数不能直接传送给DS段寄存器 BH和SI的长度不一致 目的操作数不能是立即数

(2) MOV CS,2000H (4) XCHG VAR1,VAR2 (6) MOV DS,2000H

(2) MOV CS,2000H (4) XCHG VAR1,VAR2 (6) MOV DS,2000H (8) SUB 38H,AL

(2) MOV AX,[2000H] (4) MOV AX,[BP]

(5) MOV AX,[BP+SI]

只能将寄存器或存储单元的内容压入堆栈,不能是立即数

3. 若SP=2000H,AX=3355H,BX=4466H,试指出下列指令或程序段执行后有关寄存器的内容。

AX

执行后AX=?,SP=?

PUSH BX POPDX POPCX

(2) PUSH AX

执行后AX=?,CX=?,DX=?,SP=?

(2) 执行后AX=3355H,CX=3355H,DX=4466H,SP=2000H

【解】(1) 执行后AX=3355H,SP=1FFEH

4. 请按下面的要求写出相应的汇编指令或指令序列。

(1) 将1234H送入DS中。

(2) 将5678H与AX中的数相加,结果放在AX中。 (3) 将DATAX和DATAY相加,其和放在DATAY中。 (4) 将AX中的高4位变为全0。

(5) 将BX中的低2位变为全1。 (6) 将CX中的D3~D7位取反。

【解】

(1) MOV AX,1234H

MOV DS,AX

(2) ADD AX,5678H (3) MOV AX,DATAX

ADD AX,DATAY MOV DATAY,AX

(4) AND AX,0FFFH (5) OR AX,0003H (6) XOR CX,00F8H

5. 若AL=0FFH,BL=03H,指出下列指令执行后标志AF、OF、ZF、SF、PF、CF的状态。

(1) ADD BL,AL (3) SUB BL,AL (5) AND BL,AL (7) CMP BL,AL (9) OR BL,AL

【解】执行后:

(1) ADD (2) INC (3) SUB (4) NEG (5) AND (6) MUL (7) CMP

BL,AL BL BL,AL BL BL,AL BL BL,AL

AF 1 0 1 1 任意值 任意值 1 任意值 任意值 任意值

OF 0 0 0 0 0 1 0 1 0 0

ZF 0 0 0 0 0 任意值 0 任意值 0 0

SF 0 0 0 1 0 任意值 0 任意值 1 1

PF 0 0 0 0 1 任意值 0 任意值 1 1

CF 1 不影响 1 1 0 1 1 1 0 0

(2) INC BL (4) NEG BL (6) MUL BL (8) IMUL BL (10)XOR BL,BL

(8) IMUL BL (9) OR BL,AL (10) XOR BL,BL

6. 已知存储器中有两个压缩BCD码6543和4672存放在从BUF开始的连续4个单元中(高字节放在高地址单元),试编制两数相减的程序,结果存放在后面的两个单元中。 【解】程序段如下:

LEA BX,BUF MOV AX,[BX] MOV CX,[BX+2] SUBAL,CL MOV DL,AL DAS

MOV AL,AH SBBAL,CH DAS

MOV AH,AL MOV AL,DL MOV [BX+4],AX

7. 假设DX=36A5H,CL=3,CF=1,确定下列各条指令执行后DX和CF的值。

(1) SHR DX,1 (2) SAR DX,CL

【解】

(3) SHL DX,CL (5) ROR DX,CL (9) RCL DX,CL

(4) SHL DL,1 (6) ROL DL,CL

(10)RCRDX,CL

(7) SAL DH,1 (8) SAR DH,CL

(1) 指令执行后DX:1B52H,CF:1 (2) 指令执行后DX:06D4H,CF:1 (3) 指令执行后DX:6D4AH,CF:0 (4) 指令执行后DX:364AH,CF:1 (5) 指令执行后DX:0C6D4H,CF:1 (6) 指令执行后DX:362DH,CF:1 (7) 指令执行后DX:6CA5H,CF:0 (8) 指令执行后DX:06A5H,CF:1 (9) 指令执行后DX:0B529H,CF:1 (10) 指令执行后DX:0A6D4H,CF:1

8. 编写程序段将寄存器AL中的8位二进制数的内容颠倒过来,即将原来的最高位变为最低位,次高位变为次低位,以此类推,若原AL的内容为01110001B,则颠倒之后变为10001110B。 【解】程序段如下:

XOR AH,AH MOV CX,8

LP1:SHR AL,1

RCL AH,1 LOOP LP1 MOV AL,AH

;存回AL

;AH清零 ;重复8次

;逻辑右移,将最最低位移入CF

;带进位的循环左移,将CF移入AH的最低位

9. 执行下列程序段,指出各相关寄存器的内容。

MOV DEC SUB AND MOV SAL ADD

AX,0A0BHAXAX,0FFHAX,00FFHCL,3AL,CLAL,25H

XCHG AL,AH PUSH AX POP INC

BXBL

【解(转 载于:wWw.zhAoQT.neT 蒲公 英文摘:bl的h短文)】各相关寄存器的内容:

MOV DEC SUB AND MOV SAL ADD

AX,0A0BH AX

;AX:0A0BH ;AX:0A0AH ;AX:090BH ;AX:000BH ;CL:03H ;AX:0058H ;AX:007DH

;AX:7D00H

AX,0FFH

AX,00FFH CL,3 AL,CLAL,25H

XCHG AL,AH PUSH AX

;AX:7D00H

POP INC

BXBL

;BX:7D00H ;BX:7D01H

10. 用串操作指令将100H个字符从2100H处搬到1000H处,并且从中检索与AL中所存字符相同的存储单元,并将该单元的内容替换成空格,本程序只替换检索到的第一个相同的单元。请在下列空格中填入合适的指令,使程序段完成上述功能。

MOV SI,2100H MOV CX,100H CLD

MOV DI,1000H MOV CX,100H JNZ K1 MOV [DI],20H

K1:┇

【解】

(1) MOV DI,1000H (2) REP MOVSB (3) REPNE SCASB (4) DEC DI

11. 试分析下列程序段,如果AX和BX的内容分别为下列5种情况,问程序分别转向何处?

(1) AX=147FH,BX=80DCH (2) AX=0B586H,BX=54B5H (3) AX=42C0H,BX=608AH (4) AX=0D023H,BX=9FD7H (5) AX=94B7H,BX=0B568H

ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5

【解】

(1) L1;不溢出,转移到L1 (2) L1;不溢出,转移到L1

(3) L2;溢出,不转移到L1,进位为0,转移到L2

(4) L3;溢出,不转移到L1,进位为1,不转移到L2,借位为0,转移到L3

(5) L4;溢出,不转移到L1,进位为1,不转移到L2,借位为1,不转移到L3,不溢出,转移到L4

12. 编程求出AX中存放的16位二进制数中‘1’的个数,将其存入CL中(若AX=1001010011001011B则将8存入CL)。 【解】程序段如下:

MOV CX,16 XOR BX,BX

L1: SHL AX,1

RCL BL,1

;最低位移入CF ;CF移入最低位

ADD BH,BL XOR BL,BL LOOP L1 MOV CL,BH

13. 已知BUF单元有一个单字节无符号数X,按要求编写一程序段计算Y(仍为单字节数),并将其存于累加器。

3X,X<20 X-20,X≥20

【解】程序段如下:

XOR AX,AX MOV AL,BUF CMP AL,20 JNB L1 MOV BL,3 MUL BL JMP END

L1: SUB AX,20 END: HLT

bl的h短文篇三:第1-8章部分课后习题答案

第一章 基础知识

1.1 填空题

(1) 汇编程序 , 汇编 (2) 汇编 ,连接

(3) 位 , 字节 ,_字_ (4) 组合型 , 非组合型

(5)_0~255或00000000B~11111111B_;_+127~ -128或01111111B~10000000B 1.2 选择题 DCDCC 1.3~1.5 略。

1.6 (1)4109=1 0000 0000 1101B = 100DH(2)123 =0111 1011B=7BH

(3)0.176 =0.0010 1101B=0.2DH(4)17.625=10001.101B=11.AH 1.7 (1)101011=2BH=43D (2)11010011=0D3H=211

(3)1011.0101=0B.5H=11.3125

(4)11011.00111=1B.38H=27.21875D 1.8 (1)2DH =101101B=45

(2)15.12H=10101.0001 0010B=21.0703125 (3)1C5H =1 1100 0101B=453

(4)21F.06H=10 0001 1111.0000 0110B=543.0234375

1.10 (1)带符号数 = 不带符号数 = 28432

(2)带符号数 = -32768,不带符号数 = 32768(3)带符号数 = -15659,不带符号数=49877(4)带符号数=-1,不带符号数=65535 1.11 (1)64H,100(2)8BH,-11(3)08H,8(4)0DAH,-90

1.12 (1)35=[0011 0101]组合型BCD= [0000 0011 0000 0101]非组合型BCD(2)74=[0111 0100]组合型BCD= [0000 0111 0000 0100]非组合型BCD(3)98= [1001 1000]组合型BCD= [0000 1001 0000 1000]非组合型BCD(4)14=[0001 0100]组合型BCD= [0000 0001 0000 0100]非组合型BCD 1.13 (1)10101001 + 01100100 = 0000 1101B(溢出) 10101001 - 01100100 = 0100 0101B 10101001 ∧ 01100100= 0010 0000B

10101001 ∨ 01100100 =1110 1101B

10101001 ∨(异或) 01100100 =11001101 B (2)01110011 + 10110011 = 0010 0110B(溢出) 01110011-10110011= 1100 0000B(溢出) 01110011∧10110011=0011 0011B 01110011∨10110011=1111 0011B

01110011∨(异或)10110011=1100 0000B 1.14 53;35;5

第二章 80x86计算机组织结构

2.1填空题

(1)_CPU_、_存储器_、_I/O设备 (2)_运算器_、_控制器_、_寄存器_ (3)_数据_、_地址_、_控制_ (4)_先进后出_

(5)_物理地址_、_逻辑地址_ (6)_20_、_1M字节_ (7)_实_、_保护_、_实_ (8)_13240H_、_3140H_ 2.2选择题 DCBC BADB 2.3~2.9 略。

2.10 01H,0201H,0403 0201H 2.11 11FDBH,CF=1,ZF=0,SF=0 2.12 略。 2.13

30000H

30001H30002H30003H30004H30005H

2.14 (10002H)=50H,(10000H)=7090H,(10001H)=1030 5070H 2.15 物理地址=30400H;

同一物理地址还有其他逻辑地址: 2F3F:1010H 2F40:1000H 2F41:0FF0H ……

2.16

SP→72H 1000:00FCH 61H 1000:00FDH 80H 1000:00FEH

50H 1000:00FFHSP→1000:0100H 1000:0100H

(1) 压入堆栈前 (2) 将数据5080H、6172H压入堆栈后

SP→80H1000:00FEH 50H 1000:00FFH 1000:0100H (3) 将栈顶单元的内容弹出堆栈后

2.17~2.18 略。

第三章 80x86指令系统和寻址方式

注意:编写程序题答案仅供参考,答案可能不唯一。

3.1填空题

(1) _操作码_、_操作数_

(2) _SI_、_DI_、_BX_、_DS_;_BP_、_SS_

(3) _BX_、_BP_,_SI_、_DI_,_BX_、_数据段_;_BP_、_堆栈_ (4) _1_、_0_

(5) _AX_、_AL_、_AH_ 3.2选择题 DBBDD DCDAC 3.3

(1) 立即数寻址 (2) 基址变址寻址 (3) 寄存器寻址 (4) 寄存器相对寻址 (5) 直接寻址(6) 比例变址寻址 (7) 寄存器寻址 (8) 寄存器间接寻址 (9) 立即寻址 (10) 比例变址寻址 (11) 直接寻址

(12) 相对基址变址寻址 (13) 寄存器相对寻址 (14) 比例变址寻址 3.4

(1) AX=2000H (2) AX=2100H (3) AX=7050H (4) AX=3010H (5) AX=5030H(6) AX=7050H (7) AX=6040H (8) AX=4020H (9) AX=0070H

(10) EAX=70503010H 3.5

(1) × 不能为DS赋值

(2) × 立即数不能为目的操作数 (3) × 类型不匹配 (4) √

(5) × 不匹配 (6) × 类型不匹配

(7) × 超出数的表示范围 (8) × 不能为CS赋值 (9) × 只能是字或双字

(10) × 操作数不能同时是内存操作数 3.6

(1) IP=4000H

(2) IP= 2211H,CS=当前段基址 (3) IP=3322 H,CS=当前段基址 (4) IP=5544H,CS=当前段基址 (5) IP= 2211H,CS=4433H(6) IP= 3322 H,CS=5544H

3.7 答:AX相同,第一条指令是立即寻址;第二条指令是存储器直接寻址 3.8 AX=3344H,

3.9

MOV DX, WORD PTR DATA1+2

MOV AX, WORD PTR DATA1 ADD AX, WORD PTR DATA2 ADC DX, WORD PTR DATA2+2 MOV WORD PTR DATA3, AX MOV WORD PTR DATA3+2, DX 3.10

(1) MOV AL,YSUB AL,ZADD AL,XMOV W,AL (2) MOV AX, Y

ADD AX, 10 SUB X, AX MOV BX, Z ADD BX, 100 SUB X, BX MOV AX, X MOV W, AX

(3) MOV AX,X

MUL Y SUB AX,10 SBB DX,0 DIV Z

MOV W1,AX MOV W2,DX

(4) MOV AX,X

SUB AX,Y CWD

MOV BX,100 IDIV BX ADD AX,200 IMUL Z

MOV WORD PTR W, AX MOV WORD PTR W+2, DX

3.11

(1) MOV AL, 0FFH

AND AL, 0FCH

(2) MOV AL,00H

OR AL,18H

(3) MOV BL, 0FFH

XOR BL, 30H (4) MOV CH, AL

MOV CL, BL

(5) MOV AX,X1

相关热词搜索:短文 bl bl高h短文 公交地铁h小短文bl

版权所有 蒲公英文摘 www.zhaoqt.net