微机原理试题集题库(带答案) 下载本文

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

ADD DI, 2 ADD BX, 2 POPF

LOOP AA HLT

7.要求编写完整源程序实现:求1+2+3+····+100的和,并将累加和保存在AX中。(7分)

答:程序如下:

; ------堆栈段定义,本段定义可省略 S1 SEGMENT STACK

DB 100 DUP(0) S1 ENDS

; ---------程序段定义,不可省略 C1 SEGMENT

ASSUME: CS:C1, SS:S1

START: MOV CX, 64H ;即将100给CX

XOR AX,AX CLC

A1: ADC AX,CX

LOOP A1 MOV AH,4CH INT 21H C1 ENDS

END START

8. 以NUM为首址的存储区中存有若干个字型数,其长度存于NUM1字节单元。求

出数据中的最大值,存入NUM2字单元。

41

MOV SI, OFFSET NUM MOV CX, NUM1 AA2: MOV AX, [SI] AA3: INC SI

CMP AX, [SI] JC AA2 LOOP AA2 HLT

9.设AX寄存器中有一个16位二进制数,编一程序,统计AX中“1”的个数,统计结果送CX中

解答: START :MOV CX ,0 LOOP: SUB AX,0 JZ STP SAL AX,1 JNC NOD INC CX NOD:JMP LOOP STP:HLT

10.编一程序段,完成符号函数(-128≤x≤127):

1 (x.>0)

y= 0 (x=0) -1 (x<0)

假设x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND AL,AL JGE BIGR MOV AL,0FFH MOV DATA2.AL HLT BIGR:JE EQUL MOV AL,1 MOV DATA2,AL

42

HLT

EQUL:MOV DATA2,AL HLT

9-1.编一程序段,实现下列功能

?1?Y??0?10?

MOV AX, X CMP AX, 0 JGE AA1 MOV BL, 0AH JMP AA3 AA1: JZ AA2 MOV AL, 01H JMP AA3 AA2: MOV AL, 0H AA3: MOV Y, AL HLT

x?0x?0 x?0

11.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X,Y和Z。试编制一完整的程序计算

X?X+Y+Z 答: X-SEG SEGMENT

43

X DW ? X-SEG ENDS Z-SEG SEGMENT Z DW ? Z-SEG EMDS Y-SEG SEGMENT Y DW ? Y-SEG ENDS CODE SEGMENT MAIN PROC FAR

ASSUME ES:Y-SEG,CS:CODE,DS:X-SEG,SS:Z-SEG START PUSH DS SUB AX AX PUSH AX

MOV AX ,Y_SEG MOV ES ,AX MOV AX,Z_SEG MOV SS,AX MOV AX,X_SEG MOV DS,AX MOV AX,DS:X MOV BX,ES:Y ADD AX BX JO OVERFLOW MOV BX ,SS:Z ADD AX,BX JO OVERFLOW MOV DS:X,AX OVERFLOW :RET MAIN ENDP CODE ENDS END START

12.读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH

44

STOP: HLT

解答:AL中的最高位为1时。 13.读程序:

START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC AH,0 DEC CL JNZ ADLOP HLT 请问: (1)本程序实现什么功能? (2)结果在哪里?

解答:完成20H*30H,结果在AX中。

14.请编一程序段完成AX*l0的任务(要求不准用乘法指令做)。 解答: MOV BX,AX MOV CL 2 SHL AX, CL ADD AX,BX SHL AX ,1 15.编程序使:

(1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位变反。

(4)用TEST指令测试DL寄存器位3、位6是否同时为0,若是,将0送DL;否则l送DH。

解答 :1,AND AX ,0FFF0H 2,OR BX ,000FH 3,XOR CX ,000FH 4,TEST DL ,48H JZ LOOP MOV DH,1 HLT

LOOP :MOV DL ,0 HLT

45