收藏 分销(赏)

汇编语言程序设计习题.doc

上传人:仙人****88 文档编号:9400805 上传时间:2025-03-24 格式:DOC 页数:5 大小:40.50KB
下载 相关 举报
汇编语言程序设计习题.doc_第1页
第1页 / 共5页
汇编语言程序设计习题.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
第一章 基础知识 习题 1.十六进制数88H,可表示成下面几种形式,请找出错误的表示( )。 ① 无符号十进制数136 ② 带符号十进制数-120 ③ 压缩型BCD码十进制数88 ④ 8位二进制数-8的补码表示 2.十进制数转换为二进制数、八进制数、十六进制数 ① 123 ② 87 ③ 12.25 ④ 177 ⑤ 215.125 ⑥ 113 3.十进制数转换为BCD码 ① 111 ② 131 ③ 23.44 ④ 123 ⑤ 345 ⑥ 127.36 4.完成下列十六进制数的减法 ① FFFF- AAAA= ②12DF – 02DA = 5.写出下列二进制数的补码表示: ① -1001110 ② -1001010 ③ -0010110 ④ +10101011 6.16位的二进制补码数所能表示的十进制最大数和最小数分别是什么? 16位二进制数所能表示的无符号数的范围又是多大? 7.假设两个二进制数A=0110l010,B=l0001100,试比较它们的大小 ① A、B两数均为带符号的补码数。 ② A、B两数均为无符号数。 第二章 80x86计算机组织 1. 一台微型计算机的字长为16位,如果采用字节编址,那么它可以访问的最大存储空间是多少字节?试用16进制数表示该机的地址范围.。 2. PC机有哪两种主要的存储器?它们所起的主要作用是什么? 3. 有两个16位字lEF5和2A3c分别存放在PC机存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。 4. 写出下列存储器地址的段地址、偏移地址和物理地址。 (1)2314:0035 (2)1FD0:000A 5.如果在一个程序段开始执行之前,(CS)=0A7F0H,(EP)=2D40H,试问该程序段的第一个字的物理地址是什么? 6.如果一个堆栈从地址1250:0000开始SP的内容为0052H, 问: (1)栈顶地址是什么? (2)栈底地址是什么? (3)在SS中的段地址是什么? (4)存入数据3445H后,SP的内容是多少? 第三章 80x86的指令系统和寻址方式 1.假定(DS)=212AH,(CS)=0200H,(IP)=2BC0H,(BX)=1200H D=5119H,(224A 0)=0600H、(275B9)=098AH,试确定JMP指令的转移地址。 (3)段内直接寻址。 (2)使用Bx及寄布器寻址方式的段内间接寻址。 (3)使用Dx及寄存器相对寻址方式的段内间接寻址。 2. 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00AOH,(BX)=0100H, (BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么?寻址方式?它的物理地址是多少? (1) MOV AX,0A8H (2) MOV AX,BX (3) MOV Ax,[100H] (4)MOV AX,VAL (5) MOV AX,[BX] (6)MOV AX,ES:[BX] (7)MOV AX,[BP] (8)MOV AX,[SI] (9)MOV Ax,[BX十10] (10)MOV Ax,VAL[BX] (11)MOV Ax,[BX][SI](12)MOV AX,VAL[BX][SI] 3.设有关寄存器及存储单元的内容如下(DS)=2000H,(BX)=0』00H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(22203)=4CH,(22202)=0B7H,(21203)=65H,试说明下 列各条指令执行完后AX寄存器的内容。 (1)MOV AX,1200H (2)MOV AX,[BX] (3)MOV AX,[1200H] (4)MOV AX,[BX] (5)MOV AX,1100[BX] (6)MOV AX,[BX][SI] (7)MOV AX,l100[BX][SI] 4.下面有四条等值语句, C1 EQU 1000 C2 EQU 1 C3 EQU 20000 C4 EQU 25000 下列指令哪些是不对的?请说明原因。 (1) ADD AL,C1一C2 (2)MOV AX,C3十C4 (3)SUB DX,C4一C3 (4)SUB AH,C4一C3一Cl (5)ADC AL,C2 5.下面的数据传送指令中,错误的操作是( )。 ① MOV SS:[BX+DI],1000H ② MOV DX,1000H ③ MOV WORD PTR[BX],1000H ④ MOV DS,2000H 6.下面指令执行后,变量DAB中的内容是( )。 DAW DW2A05H DAB DB 0FAH : MOV AL,BYTE PRT DAW SUB DAB,AL ① 0DAH ② 0FAH ③ 0F5H ④ 0D0H 7.执行下列指令后,正确的结果是( )。 MOV AL,100 MOV BL,-2 ① AL=100H BL=02H ② AL=64H BL=0FEH ③ AL=64H BL=82H ④ AL=100H BL=0FEH 8.完成下列操作,选用什么指令: (1)将AX的内容,减去0520H,和上次运算的借位; (2)将变量名TABL的段地址送AX; 9.D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。 第四章 汇编语言程序格式 1.画图说明下列语句分配的存储空间及初始化的数据值。 (1)BYTE—vAR DB ‘BYTE7’,12,12H,2DuP(0,?,3DUP(1,2),?) (2)WORD—VAR DW 4DUP(0,1,2),?,-5,‘BY’,‘TE’,256H 2.有符号定义语句如下: BUFF DB l,2,3,‘123’ EBUFF DB 0 L EQU EBUFF—BUFF 问L的值为多少? 3.现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT _________________ LOOP:MOVSB _______________________________ LOOP LOP 4.已知数据段定义如下: DATA SEGMENT ORG 100H BUF DW 'CD',1,3 DUP(4,2 DUP(8,6)) VRA DB 4AH DATA ENDS 单独执行下列语句 LEA BX,BUF BX=_______ MOV CX,VRA-BUF CX=_______(用十六进制数表示)。 第五章 循环与分支程序设计 5.1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 5.2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字母。 5.3 编写程序,将—个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。 5.4 有个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。 5.5 在STRING到STRING十99单元中存放着一个字符串,试编制一个程序测试该字符串中是否存在数字,如有则把CL的第5位置1,否则将该位置0。 5.6 试编写一程序,要求比较数组ARRAY中的三个]6位补码数.并根据比较结果在终端上显示如下信息: (1)如果三个数都不相等则显示0; (2)如果二个数有二个相等则显示1; (3)如果二个敬都相等刚显示2。 第六章 子程序结构 6.1设有10个学土的成绩分别是76、69、81,90、73、88、99、68、100、80分,试编一子程序统计60~69分,70~79分,80~89分,90~99分和100分的人数,并分别存放到S6,S7,S8,S9,S10单元中。 6.2 写—段子程序SKIPLINE。完成输出空行的功能。空出的行数在AX寄存器中。 6.3 编写一个有主程序和子程序的程序模块,子程序的参数是一个N字节数组的首地址TABLE、数N以及字符CHAR。要求在N字节数组中查找字符CHAR,并记录该字符出现的次数。主程序则要求从键盘接受一串字符以建立字节数组TABLE,并逐个显示从键盘键入的每个字符CHAR以及它在TABLE数组中出现的次数。(为简单起见,假设出现的次数≤15,可以用十六进制形式把它显示出来。) 6.4 给定一个正数N>1存放在NUM单元中。试编写一段递归子程序FIB(N), 并将结果存入RESULT单元中。 FIB 函数定义如下: FIB(1)=1 FIB(2)=1 FIB(n)= FIB(n-1)+ FIB(n-2) n>2 第七章 高级汇编语言技术 7.1 定义宏指令MOVE,使它能将N个字符从一个字符区传送到另一个字符区。 7.2 编写一条宏指令CLRB:完成用空格符将一字符区中的字符清除的工作。字符区 首地址及其长度为变元。 7.3 编写宏指令DISPLAY:能显示已存放在数据区的信息MESSAGE 7.4 试编写一段程序完成以下功能:如给定名为x的字符串长度大干5时,下列指 令将汇编10次:ADD AX,AX 7.5 建立一个你自己的宏库MYLIB.LIB,其中包括宏指令CLS(清屏),LOCATE(光 标定位),DISPLAY(显示信息),MOVE(字符传送)和STARTER(段寄存器初始化),并编一 个小程序使用你的宏库。 第八章 输入输出程序设计 8.1 写出指令将一个字节输出到端口25H。 写出指令将一个字从端口1000H输入。 8.2 用CALL指令来模拟实现INT 21H 现实字符T 的功能 8.3 试编写一段程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第 0位为1。则与其相应的设备就输入—个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程就结束。两个状态寄存器的端口地址分别是0024H和0036H,与其相应的数据输入寄存器的端口为0026H和0038H,输入字符分别存入首地址为BUFFl和BUFF2的存储区中。 8.4类型14H的中断向量在存储器的哪些单元里? 8.5 假设外部设备中有一台硬币兑换器,其状态寄存器的端口地址为0006,数据输入 寄存器的端口地址为0005,数据输出奇存器的端口地址为0007。试用查询方式编制一程序, 该程序作空闲循环等待纸币输入,当状态寄存器的第2位为1时表示有纸币输入,此时可从 数据输入寄存器输入的代码中测出纸币品种,一角纸币的代码为01,二角纸币为02,五角纸币则为03,然后程序在状态寄存器的第3位变成1后,把应兑换的5分硬币数(用16进制表示)从数据输出奇存器输出。 第九章 BIOS和 DOS 中断 9.1 INT 21H 的键盘输入功能1和功能8有什么区别 9.2 给定(SP=0100,(SS)=0300、(PWS)=0240,以及存储单元的内容(00020)= 0040,(00022)=0100,在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT 8试问执行INT 8指令后,SP、SS、IP、PWS的内容是什么?栈顶的三个字是什么? 编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令)存入内存缓冲区BUFFER。加密表为 输入数字;0、I、2、3、4、5、6、7、8、9 密码数字;7、5、9、1、3、6、8、0、2、4 9.3 编写指令使其完成下列要求: (1)读当前光标位置。 (2)把光标移到屏底一行的开始。 (3)在屏幕的左上角以正常属性显示一个字母M 9.4 游戏程序常常用随机数来校制某图形在屏幕1:移动,请编写 一程序,用随机数来 控制笑脸符(ASCII码02)显示的位置。笑脸将每次显示的列号总是递增1,而行的位置可能是前行的上一行、下一行或同一行,这根据随机数是0、1或2来决定,当行号为0、24或列号为79时显示结束。笑脸符在每个位置显示1/4秒。 9.5 从键盘上输入一行字符,如果这行字符比前一次输入的一行字符长度长,则保存 该行字符,然后继续输入另—行字符;如果它比前一次输入的行短,则不保存这行字符。按下$:则输入结束,最后将最长的—行字符串显示出来,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服