微机原理及接口技术课后习题及参考答案内容摘要:
口参数。 、编制一个子程序,把一个 16位二进制数用 4位 16进制形式在屏幕上显示出来。 、在以 BUF 为首地址的字缓冲区中有 3个无符号数,编程将这 3个数按升序排列,结果存回原缓冲区。 、在 DAT 字节单元中有一个有符号数,判断其正负,若为正数,则在屏幕上显示 “ +” 号;若为负数 ,则显示 “ ” 号;若是 0,则显示 0。 、编程求 1~ 400中所有奇数的和,结果以十六进制数形式显示到屏幕上。 、在以 DAT 为首地址的字节缓冲区中存有 100H 个无符号字节数据,编程求其最大值与最小值之和,结果存入 RESULT 字单元。 、在内存单元 CNT 中有一个字数据,编程将其二进制数显示到屏幕上。 、在以 STRG 为首地址的缓冲区中有一组字符串,长度为 100,编程实现将其中所有的英文小写字母转换成大写字母,其它的不变。 、在以 DAT 为首地址的内存中有 100个无符号数(数的长 度为字),编程统计其中奇数的个数,结果以十进制形式显示到屏幕上。 要求分别用子程序完成奇数个数统计,用宏完成十进制数显示。 、编写一段程序,使汇编程序根据 SIGN 的值分别产生不同的指令。 如果 SIGN=0,则用字节变量 DATB 中的无符号数除以字节变量 SCALE;如果 SIGN= 1,则用字节变量 DATB 中的有符号数除以字节变量 SCALE,结果都存放在字节变量 RESULT 中。 习题四 参考答案 :汇编语言是计算机能够提供给用户使用的最快速有效的语言,它是以处理器指令系统为基础的低级程序设计语言, 采用助记符表示指令操作码,采用标识符表示指令操作数。 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。 在对程序的空间和时间要求高的应用领域,汇编语言的作用是不容置疑和无可替代的。 然而,汇编语言作为一种低级语言也存在很多不足,例如,功能有限、编程难度大、依赖处理器指令,这也限制了它的应用范围。 汇编语言源程序由若干语句组成,通常,这些语句可以分为 3类,分别是: ( 1)指令语句;( 2) 宏指令语句;( 3) 伪指令语句。 汇编语言也由段组成,8086/8088按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段,段与段之间的顺序可以任意排列。 需要独立运行的程序必须包含一个代码段,一个程序只有一个起始点,且必须指示程序的起始点。 :七种存储模型: ① Tiny 所有数据和代码都放在一个段内,其数据和代码都是近访问。 Tiny程序可以写成. COM 文件格式 , COM 程序必须从 0100H 的存储单元开始。 这种模型一般用于小程序。 ② Small 所有数据放在一个 64KB 的数据段内,所有代码放在另一个 64KB 的代码段内,数据和代码也都是近访问的。 这是一般应用程序最 常用的一种模型。 ③ Medium 代码使用多个段,一般一个模块一个段,而数据则合并成一个64KB 的段组。 这样,数据是近访问的,而代码则可远访问。 ④ Compact 所有代码都放在一个 64KB 的代码段内,数据则可放在多个段内,形成代码是近访问的,而数据则可为远访问的格式。 ⑤ Large 代码和数据都可用多个段,所以数据和代码都可以远访问。 ⑥ Huge 与 Large 模型相同,其差别是允许数据段的大小超过 64KB。 ⑦ Flat 允许用户用 32位偏移量,但 DOS 下不允许使用这种模型,只能在 OS/ 2下或其他保护模式的 操作系统下使用。 MASM 5版本不支持这种模型,但MASM 6可以支持。 :需要使用一个标号,如 start。 对于有数据段的程序,简化段定义下应该这样开始: start: mov ax, @data mov ds,ax 汇编语言程序设计过程中,有多种返回 DOS 的方法,但一般用 DOS 功能调用的 4CH子功能来实现。 应用程序的终止代码是: mov ax, 4c00h int 21h 汇编结束是指汇编程序结束将源程序翻译成目标模块代码的过程。 源程序的最后必须有一条 end 伪指令: end [标号 ];其中,可选的标号是程 序指定的开始执行点,连接程序以此设置 CS 和 IP。 如: end start :逻辑段具有 4个属性:( 1)定位类型( align_type)说明段的起始地址应有怎样的边界值;( 2)组合类型( bine_type)说明程序连接时的段合并方法;( 3)使用类型( use_type)只适用于 386及其后继机型,它用来指定寻址方式。 ( 4)类别( ‘ class’ )在引号中给出连接时组成段组的类型名。 完整代码段定义时的默认属性是: PARA、 PRIVATE、 USEl6 : COM 和 EXE 程序结构。 EXE 程序有独 立的代码段、数据段和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过 64KB。 COM 程序只有一个逻辑段,其中包含数据区、代码区和堆栈区,程序代码长度不超过 64KB,程序从 100H处开始执行。 答:( 1) mov al, 23h AND 45h OR 67h; 67H ( 2) mov ax, 1234h/ 16+10h; 133H ( 3) mov ax, 254h SHL 4; 2540H ( 4) mov al, ’a’ AND ( NOT( ‘b’ - ‘B’ )); 21H ( 5) mov ax,( 76543 LT 32768) XOR 7654h; 89ABH : (1) 42H 43H 44H 0AH 10H 45H 46H FFH 04H 04H 04H FFH 04H 04H 04H ( 2) 34H 12H FBH FFH :( 1) myl_b db ‘Personal Computer。 ’ ( 2) my2_b db 64H ( 3) my3_w dw 100 dup(?) ( 4) my4_c equ 100 ( 5) my5_c equ Personal Computer。 :( 1) mov byte ptr [bx],256;改正 ――mov word ptr [bx],256 ( 2) mov bx,offset opw[si];改正 ――mov bx,offset opw ( 3) add opbl,opb2;改正 ――add al,opb2 ( 4) mov opbl,al+l;改正 ――mov opbl,al ( 5) sub al,opw;改正 ――sub al,opb1 ( 6) mov [di],1234h;改正 ――mov word ptr [di],1234h : .MODEL SMALL .DATA X DW 1234H Y DW 4321H MAX DW ? .CODE START: MOV AX,@DATA MOV DS,AX MOV AX,X CMP AX,Y JNZ NEQU MOV MAX,0FFFFH JMP STOP NEQU: JC NEXT MOV MAX,X JMP STOP NEXT: MOV MAX,Y STOP: MOV AX,4C00H INT 21H END START : .MODEL SMALL .DATA DAT DW 9234H SIGN DW ? .CODE START: MOV AX,@DATA MOV DS,AX MOV AX,DAT CMP AX,0 JZ STOP TEST AX,8000H JNZ FU MOV SIGN,0 JMP STOP FU: MOV SIGN,0FFH STOP: MOV AX,4COOH INT 21H END START : DISPLAY MACRO MOV AH,2 INT 21H ENDM .MODEL SMALL .DATA X DW 1230H Y DW 1234H Z DW 1234H .CODE START: MOV AX,@DATA MOV DS,AX MOV AX,X MOV BX,Y CMP AX,Z JNZ N1 CMP AX,BX JNZ N2 MOV DL,39。 Y39。 DISPLAY STOP: MOV AX,4C00H INT 21H N1: CMP AX,BX JNZ N3 N2: MOV DL,39。 X39。 DISPLAY JMP STOP N3: CMP BX,Z JNZ N4 JMP N2 N4: MOV DL,39。 N39。 DISPLAY JMP STOP END START : .MODEL SMALL .DATA DAT DB 12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34H SUM DW ? .CODE START: MOV AX,@DATA MOV DS,AX MOV CX,10 MOV DX,0 LEA BX,DAT AGAIN: MOV AL,[BX] CBW MOV DX,AX INC BX LOOP AGAIN MOV SUM,DX MOV AX,4C00H INT 21H END START : .MODEL SMALL .CODE START: MOV AX,2020H MOV DS,AX MOV SI,0 MOV DX,0 MOV CX,0FFFFH AGAIN: MOV AL,[SI] CMP AL,20H JNZ NEXT INC DX NEXT: INC SI LOOP AGAIN MOV AX,4C00H INT 21H END START . 答: proame PROC [attributes field][USES register list][,parameter field] ┇ Proame ENDP push 和 pop 的使用是为了保护子程序的调用的现场,比如寄存器的值。 本例中要保护的寄存器是 ax 和 dx。 jiafa PROC。 用 CX, BX 传参数 ―― 数据的个数和数据的起始地址,结果放在字内存单元 SUM 和 SUM+ 1 push ax push dx xor ax,ax xor dx,dx again: add ax, [bx] adc dx,0 inc bx inc bx loop again mov sum,ax mov [sum+1],dx pop dx pop ax ret jiafa ENDP : .MODEL SMALL .CODE START: MOV CX,16 MOV BL,0。 BL 中放 0的个数 AGN: SHL AX,1。 数 0的个数 JC NEXT INC BL NEXT: LOOP AGN MOV AL,BL DAA MOV DL,AL。 显示高位 AND DL,0F0H MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,2 INT 21H MOV DL,AL。 显示低位 AND DL,0FH ADD DL,30H MOV AH,2 INT 21H MOV DL,0DH。 显示回车 MOV AH,2 INT 21H MOV DL,0AH。 显示换行 MOV AH,2 INT 21H MOV AX,4C00H INT 21H END START .答: 用寄存器传参数。 用共享变量传参数。 用堆栈传参数。 .答:设这个 32位数放在 中 ,求补后的结果也放在 中。 BUMA PROC PUSH BX PUSH CX XOR BX,BX XOR CX,CX SUB BX,AX MOV AX,BX SBB CX,DX MOV DX,CX POP CX POP BX RET BUMA ENDP :设数据个数在 CX 中,数据缓冲区的首地址为 BUF。 出口参数:校验和放在 SUM 字节单元。 CHKSUM PROC PUSH AX PUSH BX DEC CX LEA BX,BUF MOV AL,[BX] AGN: ADD AL,[BX] INC BX LOOP AGN MOV SUM,AL POP BX POP AX RET CHKSUM ENDP :设这个十六进制的字放在数据段的 TEMP 字单元中。 BTOH PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV CL,4 MOV BX,TEMP MOV DL,BH。 最高位 SHR DL,CL CMP DL,0AH JC N1。微机原理及接口技术课后习题及参考答案
相关推荐
,扩展的 ASCII 码共有 28=256 个。 基本 ASCII 码包括: 数字 10 个: 0~9 ( ASCII 码: 30H~39H) 大写字母 26 个: A~Z ( ASCII 码: 41H~5AH) 小写字母 26 个: a ~ z ( ASCII 码: 61H~7AH) 标点与运算符号: 20 多个(包括,。 ;。 :。 + * / 等) 各种控制符: 30 多个(包括设备、文件
PUSH CX,POP AX 后,栈顶和栈底的地址分别为( )。 A. 201FAH, 20200H B. 201FCH, 20200H C. 201FCH, 20200H D. 201FDH, 201FFH 【 解 】 A 1 以下那个说法正确( )。 A. 指令 MOV AL, [BX+5]中的源操作数的寻址方式是寄存器间接寻址。 B. 指令 MOV AL,
使青霉素失去抑菌 ,杀菌的作用 .例 2:在检查喹诺 **类抗菌药时 ,可根据其理化性质 :3,4位羧基与 **羰基 ,容易和金属离子如 ,钙 ,镁 ,铁 ,锌等形成螯合物降低药物的活性 .在稀释剂或培养基中加入nS4()3检查在相关时间段 其他样品或同类样品的检测结果 和 微生物菌落形态也可参考当天 /当次检验其他检品的检验结果 ,有类似异常情况发生 ,可根据所检查微生物菌落形态作出相应的判断
NT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV SI, OFFSET STRING MOV CX, COUNT MOV AL,‘ $’ CONT: CMP AL, [SI] JNZ NEXT MOV BYTE PTR[SI],‘ ’ NEXT: INC SI LOOP CONT MOV AH, 4CH INT 21H
PU 识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。 3. 什么是中断嵌套。 使用中断嵌套有什么好处。 对于可屏蔽中断,实现中断嵌套的条件是 什么。 答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未 处理完的程序,这 种中断处理方式成为中断嵌套。
违者严重警告。 保持员工休息室的整齐、清洁,禁止随意摆放物品、随地吐痰、扔垃圾等行为,防火防电。 违者严重警告。 同事之间应和睦相处、亲如家人,出现纠纷应协商解决或者向主管求助。 同事之间任何形式的肢体冲突将被视为严重违纪,当即双方除名,工资押金不退,在营业区内的任何言语冲突双方不论对错各罚款 50 元,主管负管理责任同罚 50 元。 再犯无偿除名。 不得在店内外参加任何形式的赌博