微机原理课后习题答案解析

内容发布更新时间 : 2024/12/22 19:53:45星期一 下面是文章的全部内容请认真阅读。

完美WORD格式.整理

11、(1)CS=(1000)IP=(0155) (2)CS=(1000)IP=(176F) (3)CS=(1000)IP=(17C6) (4)CS=(2000)IP=(0146) (5)CS=(1000)IP=(1770) (6)CS=(2000)IP=(0146)

12、分别说明下列各组指令中的两条指令的区别。 答:(1)MOV AX,TABLE

LEA AX,TABLE

假设TABLE为字变量名,则:左为将TABLE单元的内容送AX,右为将TABLE单元的偏移地址送AX。

假设TABLE为字节变量名,则:左为错误指令,右为将TABLE单元的偏移地址送AX

假设TABLE为常量名,则:左为将TABLE的内容送AX,右为错误指令 (2)AND BL,0FH

OR BL,0FH

左为将BL的高4位清0,右为将BL的低4位置1

(3)JMP SHORT Ll

JMP NEA RPTR Ll

左为短转移,2字节的指令,转移范围为一l28~+127

右为近转移,l字节的指令,转移范围为--32 768+32 767 (4)MOV AX,BX

MOV AX,[BX]

左为将BX的值送AX

右为将BX的值作为相对DS段的内存单元偏移地址,取出字单元值送AX (5)SUB DX,CX

CMP DX,CX

. 专业资料分享 .

完美WORD格式.整理

左为减法,并将DX-CX的值存入DX中

右为比较,做减法,但不会将DX-CX的值存入DX中

(6)MOV [BP][SI],CL

MOV DS:[BPIESI],CL

左边第~操作数默认为相对于SS段偏移的存储器操作数

右边第一操作数采用段超越,指定为相对于DS段偏移的存储器操作数 13、写出判断AL为正为负的程序段(请至少用三种方法)。

答:方法一:CMP AL,80H ;而后用JAE代表负数转移,JB代表正数转移 方法二:CMP AL,00H ;而后用JGE代表正数转移,JL代表负数转移 方法三:TEST AL,80H ;而后用JNZ代表负数转移,JZ代表正数转移 方法四:OR AL,AL ;而后用JNS代表负数转移,JS代表正数转移 方法五:AND AL,AL ;而后用JNS代表负数转移,JS代表正数转移 方法六:SUB AL,00H ;而后用JGE代表正数转移,JL代表负数转移 方法七:TEST AL,80H :而后用JNS代表正数转移,JS代表负数转移 14、思考题:试比较以下几条指令的功能。 答:MOV BX,SI ;将SI的值送给BX

MOV BX,[SI] ;将SI的值作为偏移地址找到对应的内存单元中的值送给BX

MOV BX,OFFSET[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX,即SI的值送给BX

LEA BX,[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX, 即Sl的值送给BX

LDS BX,[SI] ;将Sl值作为偏移地址找到对应内存单元中的第一个字

. 专业资料分享 .

完美WORD格式.整理

值送给BX, 第二个字值送DS

LES BX,[SI] :将SI值作为偏移地址找到对应内存单元中的第一个字值送给BX, 第二个字值送ES

15、设B、D为字节变量,A、C为字变量,且A除B可能会溢出,试编写无符号数或有符号数A/B商送C,余数送D。 答:可能会溢出则要考虑扩展数据表示能力。

;无符号数除法 . ;有符号数除法 MOV AL,B MOV AL,B XOR AH,AH CBW MOV BX,AX MOV BX,AX MOV AX,A MOV AX,A

XOR DX,DX ;无符号扩展 CWD ;有符号扩展 DIV BX IDIV BX MOV C,AX MOV C,AX MOV D,DL MOV D,DL

16、编写程序段实现DX、AX中32位二进制数*l0 (设不溢出)。 答:;X*10=X*8+X*2,用移位指令实现

SHL AX,1

RCL DX,1 :DX,AX=(DX,AX)*2 MOV BX,DX

MOV BP,AX ;BX,BP转存2倍值 SHL AX,l

. 专业资料分享 .

完美WORD格式.整理

RCL DX,l ;再乘2 SHL AX,l

RCL DX,1 :再乘2 ADD AX,BP

ADC DX,BX ;8倍+2倍=10倍 17、请编写程序段实现如图3.33所示功能。

MOV

SI,BX

LDS BX,[SI] 18、设已有定义 STR N

DB

“Sdfikjwsmfw893040pYUIUKLHGUkjdshf8”

EQU $ - STR1

试编写实现在STR中查找是否存在非‘A’的功能程序段。即表示STR串中大部分是‘A’,若其中存在不是‘A’的字符则查找成功,若STR全部为‘A’则不成功。

19、程序理解执行。

(1) MOV AH,一l ;AH=FFH MOV AL,180 ;AL=B4H MOV BL,15 ;BL=0FH

IDⅣ BL ;AX/BL即:-76/15,商-5,余数-l 程序段执行后,AX=0FFFBH。

. 专业资料分享 .

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi