教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

微机原理及接口技术课后习题及参考答案(4)

来源:网络收集 时间:2026-08-22
导读: NEXT: OUT 10H,AL INC BX LOOP AGN 3.18 答:假设数组的起始地址是BUFFER LEA BX,BUFFER MOV DX,0 MOV CX,100 ONCE: MOV AL,[BX] TEST AL,80H;是正数还是负数 JNZ FUSHU;是负数,跳转 CMP AL,0;是0吗? JZ NEXT

NEXT: OUT 10H,AL INC BX LOOP AGN

3.18 答:假设数组的起始地址是BUFFER LEA BX,BUFFER MOV DX,0 MOV CX,100

ONCE: MOV AL,[BX]

TEST AL,80H;是正数还是负数 JNZ FUSHU;是负数,跳转 CMP AL,0;是0吗? JZ NEXT

INC DH;是正数,则DH加1

JMP NEXT

FUSHU: INC DL;是负数,则DL加1 NEXT: INC BX DEC CX JNZ ONCE

MOV POSIT,DH MOV NEGAT,DL

第四章 课后习题

4.1、汇编语言有何特点?编写汇编语言源程序时,一般的组成原则是什么? 4.2、.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪几种存储模式,各用于创建什么性质的程序?

4.3、如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?

4.4、逻辑段具有哪些属性?完整代码段定义时的默认属性是什么?小型模式下的简化代码段定义具有的默认属性是什么?

4.5、 DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么? 4.6、给出下列语句中,指令立即数(数值表达式)的值: (1)mov al,23h AND 45h OR 67h (2)mov ax,1234h/16+10h (3)mov ax,254h SHL 4

(4)mov al,’a’ AND (NOT(‘b’一 ‘B’)) (5)mov ax,(76543 LT 32768)XOR 7654h

4.7、画图说明下列语句分配的存储空间及初始化的数据值:

(1) byte_var db ‘BCD’,10,10h,’EF’,2 dup (一l,?,3 dup(4)) (2) word_var dw 1234h,一5,6 dup(?) 4.8、设置一个数据段,按照如下要求定义变量:

(1)myl_b为字符串变量,表示字符串“Personal Computer!” (2)my2_b为用十六进制数表示的字节变量,这个数的大小为100 (3)my3_w为100个未赋值的字变量 (4)my4_c为100的符号常量

(5)my5_c为字符串常量,代替字符串“Personal Computer!”

4.9、假设opw是一个字变量,opbl和opb2是两个字节变量,指出下列语句中的具体错误原因并改正错误。

(1) mov byte ptr [bx],256 (2) mov bx,offset opw[si] (3) add opbl,opb2 (4) mov opbl,al+l (5) sub al,opw (6) mov [di],1234h

4.10、编制一个程序,把字变量X和Y中数值较大者存入MAX字单元;若两者相等,则把-1存入MAX中。假设变量存放的是有符号数。

4.11、设变量DAT为有符号16位数,请编写程序将它的符号状态保存在sign字节单元,即:如果变量值大于等于0,保存0;如果变量值小于0,保存-1。 4.12、 X、Y和Z是3个有符号字节数据,编写一个比较相等关系的程序: (1)如果这3个数都不相等,则显示N; (2)如果这3个数中有两个数相等,则显示X; (3)如果这3个数都相等,则显示Y。

4.13、编制程序完成12H,23H,F3H,6AH,20H,FEH,10H,C8H,25H和34H共10个无符号字节数据之和,并将结果存入字变量SUM中。

4.14、求出主存从2000H:0开始的一个64KB物理段中共有的空格个数,存入DX中。

4.15、过程定义的一般格式是什么?子程序开始为什么常有PUSH指令,返回前为什么有POP指令?下面完成16位无符号数累加的子程序是否正确?若有错,请改正。 jiafa PROC

push ax xor ax,ax xor dx,dx

again: add ax, [bx]

adc dx,0 inc bx

inc bx loop again ret

ENDP jiafa

4.16、编写一个程序,统计寄存器AX中二进制数位“0”的个数,结果以二位十进制数形式显示到屏幕上。

4.17、子程序的参数传递有哪些方法?

4.18、编写一个求32位数据补码的子程序,通过寄存器传递入口参数。

4.19、所谓“校验和”是指不记进位的累加,常用于检查信息的正确性。编写一个计算字节校验和的子程序。主程序提供入口参数:数据个数和数据缓冲区的首地址。子程序回送求和结果这个出口参数。

4.20、编制一个子程序,把一个16位二进制数用4位16进制形式在屏幕上显示出来。

4.21、在以BUF为首地址的字缓冲区中有3个无符号数,编程将这3个数按升序排列,结果存回原缓冲区。

4.22、在DAT字节单元中有一个有符号数,判断其正负,若为正数,则在屏幕上显示“+”号;若为负数,则显示“-”号;若是0,则显示0。

4.23、编程求1~400中所有奇数的和,结果以十六进制数形式显示到屏幕上。 4.24、在以DAT为首地址的字节缓冲区中存有100H个无符号字节数据,编程求其最大值与最小值之和,结果存入RESULT字单元。

4.25、在内存单元CNT中有一个字数据,编程将其二进制数显示到屏幕上。 4.26、在以STRG为首地址的缓冲区中有一组字符串,长度为100,编程实现将其中所有的英文小写字母转换成大写字母,其它的不变。

4.27、在以DAT为首地址的内存中有100个无符号数(数的长度为字),编程统计其中奇数的个数,结果以十进制形式显示到屏幕上。要求分别用子程序完成奇数个数统计,用宏完成十进制数显示。

4.28、编写一段程序,使汇编程序根据SIGN的值分别产生不同的指令。

如果SIGN=0,则用字节变量DATB中的无符号数除以字节变量SCALE;如果SIGN=1,则用字节变量DATB中的有符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。

习题四 参考答案

4.1答:汇编语言是计算机能够提供给用户使用的最快速有效的语言,它是以处

理器指令系统为基础的低级程序设计语言,采用助记符表示指令操作码,采用标识符表示指令操作数。利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。在对程序的空间和时间要求高的应用领域,汇编语言的作用是不容置疑和无可替代的。然而,汇编语言作为一种低级语言也存在很多不足,例如,功能有限、编程难度大、依赖处理器指令,这也限制了它的应用范围。

汇编语言源程序由若干语句组成,通常,这些语句可以分为3类,分别是: (1)指令语句;(2) 宏指令语句;(3) 伪指令语句。汇编语言也由段组成,8086/8088按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段,段与段之间的顺序可以任意排列。需要独立运行的程序必须包含一个代码段,一个程序只有一个起始点,且必须指示程序的起始点。 4.2答:七种存储模型:

①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可以支持。

4.3答:需要使用一个标号,如start。对于有数据段的 …… 此处隐藏:2025字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理及接口技术课后习题及参考答案(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/606702.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)