微机作业汇编程序参考标准答案
中南大学《微型机原理与汇编语言》课程作业(在线作业)三及参考答案

(一) 单选题1.8086/8088的中断系统能够处理多少个不同的中断源()。
(A) 16 (B) 32 (C) 128 (D) 256参考答案:(D)2.执行指令JBOPR,能使程序发生转移的条件为()。
(A)(B)(C)(D)参考答案:(C)3.设,,则执行指令JMPWORD PTR后,寄存器IP中的内容为()。
(A) 0100H (B) 2000H (C) 0080H (D) 0012H参考答案:(C)4.8086/8088的每个中断向量占多少个字节()。
(A) 1 (B) 2 (C) 3 (D) 4参考答案:(D)5.串操作指令以下列哪个寄存器指向源操作数()。
(A) DI (B) SI (C) AX (D) BX参考答案:(B)6.DOS操作系统使用的中断类型号范围是()。
(A) 00H~1FH (B) 20H~3FH (C) 40H~5FH (D) 60H~7FH参考答案:(B)7.指令JNPOPR的转移条件是()。
(A) 状态标志位PF为1 (B) 状态标志位OF为1 (C) 状态标志位PF为0 (D) 状态标志位OF为0参考答案:(B)8.指令CLD的功能是()。
(A) 状态位DF清零(B) 状态位ZF清零(C) 状态位SF清零(D) 状态位CF清零参考答案:(A)9.指令JSOPR的转移条件是()。
(A) 状态标志位SF为1 (B) 状态标志位CF为1 (C) 状态标志位SF为0 (D) 状态标志位CF为0参考答案:(A)10.设,,,,,,则执行指令JMPDWORD PTR后,寄存器IP中的值为()。
(A) 5000H (B) 0080H (C) 3000H (D) 2012H参考答案:(B)(二) 多选题1.汇编语言程序设计中对段定义的伪指令中通常指明段的类型,除了DWORD、WORD和BYTE类型外,还有哪几种类型()。
(A) PUBLIC (B) PAGE (C) COMMON (D) PARA参考答案:(BD)2.常用的循环控制方法有()。
微机原理及汇编语言答案及评分标准

微机原理及汇编语⾔答案及评分标准浙江⼯业⼤学2007/2008 学年第⼀学期试卷班级:应⽤物理0501,02,光信息0501,02微机原理I答案及评分标准⼀、选择题(1.5分×10=15分):评分标准:每题1.5分1.指令指针寄存器(IP)中存放的是(D)A.当前指令 B.下⼀条要执⾏的指令 C. 操作数地址 D. 下⼀条要执⾏指令的地址2.与堆栈⽆关的寄存器有(C )A.SP B. BP C. BX D. SS3. 8086CPU复位后,程序重新开始执⾏的逻辑地址为(B )A.FFFFH: FFF0H B. FFFFH: 0000H C. 0000H: 0000H D. 0000H: FFFFH4.和外存储器相⽐,内存储器的特点是( C )。
A. 容量⼤、速度快、成本低B. 容量⼤、速度慢、成本低C. 容量⼩、速度快、成本⾼D. 容量⼩、速度快、成本低5.若指定某位为1可⽤指令( B )A.AND B. OR C. NOT D. XOR6. ( B )不汇编机器代码,仅在汇编过程中告诉汇编程序如何编译A.汇编语⾔B.伪指令 C. 指令 D. 标识符7.8086CPU采⽤向量中断⽅式处理8级I/O接⼝中断,若I/O接⼝的中断类型号依次70H~77H,在内存RAM的0000H:01D8H单元依次存放20H,50H,00H,60H 4个字节,问该I/O接⼝对应的中断类型号和中断服务程序⼊⼝是(D)A.72H和2050H:0060H B. 72H和6000H:5020HC. 76H和0060H:2050HD. 76H和6000H:5020H8.数据在外设与存储器之间直接进⾏传送是采⽤( C )传送。
A、中断传送B、程序传送C、DMA传送D、数据块传送9.若8086CPU⼯作于最⼩⽅式,则执⾏MOV [BX], DL时其引脚信号RD的电平应是(B )A.低电平,低电平 B. 低电平,⾼电平C.⾼电平,低电平 D. ⾼电平,⾼电平10.关于虚拟存储器,下列说法正确的是(C )A.它是由内存芯⽚所提供的地址空间B.它是CPU可以直接访问的存储器C.它是指程序可以占有的空间D.它可以扩⼤外存储器的存储空间⼆、判断题(1分×10=10分): 评分标准:每题1分1.80286微处理器实现了虚拟存储管理。
汇编语言程序设计教案及习题答案

汇编语言程序设计教案及习题答案教案章节:一、汇编语言简介1. 汇编语言的概念2. 汇编语言的特点3. 汇编语言的应用领域二、汇编语言的基本语法1. 数据类型及表示2. 指令格式及分类3. 寄存器使用规则三、汇编语言程序设计步骤1. 分析需求,确定程序功能2. 选择合适的汇编语言及开发环境3. 编写汇编代码,调试程序4. 优化程序性能四、常用汇编指令及功能1. 数据传输指令2. 算术运算指令3. 逻辑运算指令4. 控制流指令5. 字符串操作指令6. 中断指令五、汇编语言与C语言的接口编程1. extern声明汇编函数2. 调用汇编函数的方法3. 汇编函数与C函数的数据交换4. 实例分析:汇编语言实现字符串排序习题答案:一、汇编语言简介1. 汇编语言是一种低级编程语言,用于编写计算机程序。
(正确)2. 汇编语言可以直接操作计算机硬件资源。
(正确)3. 汇编语言程序可读性差,不易维护。
(正确)二、汇编语言的基本语法1. 数据类型及表示a. 字节:8位(正确)b. 字:16位(正确)c. 双字:32位(正确)d. 四字:64位(正确)2. 指令格式及分类a. 操作码(正确)b. 操作数(正确)c. 寄存器(正确)d. 标志位(正确)3. 寄存器使用规则a. 通用寄存器:AX, BX, CX, DX(正确)b. 段寄存器:CS, DS, ES, SS(正确)c. 指令指针:IP(正确)d. 状态寄存器:FLAGS(正确)三、汇编语言程序设计步骤1. 分析需求,确定程序功能(正确)2. 选择合适的汇编语言及开发环境(正确)3. 编写汇编代码,调试程序(正确)4. 优化程序性能(正确)四、常用汇编指令及功能1. 数据传输指令a. MOV:数据传送(正确)b. PUSH:压栈(正确)c. POP:出栈(正确)d. XCHG:交换数据(正确)2. 算术运算指令a. ADD:加法(正确)b. SUB:减法(正确)c. MUL:无符号乘法(正确)d. IMUL:有符号乘法(正确)3. 逻辑运算指令a. AND:逻辑与(正确)b. OR:逻辑或(正确)c. XOR:逻辑异或(正确)d. NOT:逻辑非(正确)4. 控制流指令a. JMP:无条件跳转(正确)b. JE:相等跳转(正确)c. JNE:不相等跳转(正确)5. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)6. 中断指令a. INT:软件中断(正确)b. INTO:中断向量表(正确)五、汇编语言与C语言的接口编程1. extern声明汇编函数(正确)2. 调用汇编函数的方法(正确)3. 汇编函数与C函数的数据交换(正确)4. 实例分析:汇编语言实现字符串排序(正确)汇编语言程序设计教案及习题答案教案章节:六、汇编语言的输入与输出1. 输入输出指令2. 字符串操作指令3. 实例分析:编写一个简单的输入输出程序七、汇编语言的杂项指令1. 杂项指令的概念2. 常用杂项指令及其功能3. 实例分析:杂项指令的应用八、汇编语言的子程序调用1. 子程序调用的概念2. 子程序的定义与调用3. 子程序的返回4. 实例分析:子程序在汇编语言中的应用九、汇编语言的程序举例1. 实例一:计算两个数的和2. 实例二:字符串的复制3. 实例三:数制的转换4. 实例四:文件的读写十、汇编语言程序的调试与优化1. 调试工具的使用2. 调试方法与技巧3. 程序优化的概念4. 程序优化的方法与技巧习题答案:六、汇编语言的输入与输出1. 输入输出指令a. IN:输入指令(正确)b. OUT:输出指令(正确)c. INPUT:输入函数(正确)d. PRINT:输出函数(正确)2. 字符串操作指令a. MOVS:字符串移动(正确)b. CMPS:字符串比较(正确)c. SCAS:字符串扫描(正确)d. LODS:字符串装载(正确)3. 实例分析:编写一个简单的输入输出程序(正确)七、汇编语言的杂项指令1. 杂项指令的概念(正确)2. 常用杂项指令及其功能a. NOP:无操作(正确)b. HLT:停止CPU运行(正确)c. CMC:翻转标志位(正确)d. ARPL:寄存器之间交换(正确)3. 实例分析:杂项指令的应用(正确)八、汇编语言的子程序调用1. 子程序调用的概念(正确)2. 子程序的定义与调用a. 定义子程序(正确)b. 调用子程序(正确)3. 子程序的返回(正确)4. 实例分析:子程序在汇编语言中的应用(正确)九、汇编语言的程序举例1. 实例一:计算两个数的和(正确)2. 实例二:字符串的复制(正确)3. 实例三:数制的转换(正确)4. 实例四:文件的读写(正确)十、汇编语言程序的调试与优化1. 调试工具的使用(正确)2. 调试方法与技巧(正确)3. 程序优化的概念(正确)4. 程序优化的方法与技巧(正确)汇编语言程序设计教案及习题答案教案章节:十一、汇编语言与操作系统1. 操作系统的概念2. 汇编语言在操作系统中的应用3. 实例分析:汇编语言编写简单的操作系统十二、汇编语言与设备驱动程序1. 设备驱动程序的概念2. 汇编语言在设备驱动程序开发中的应用3. 实例分析:汇编语言编写简单的设备驱动程序十三、汇编语言与嵌入式系统1. 嵌入式系统的概念2. 汇编语言在嵌入式系统中的应用3. 实例分析:汇编语言编写简单的嵌入式系统十四、汇编语言与汇编器的使用1. 汇编器的概念2. 汇编器的使用方法3. 实例分析:使用汇编器编写和调试汇编程序十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势2. 汇编语言在未来的应用领域3. 汇编语言学习的方法与建议习题答案:十一、汇编语言与操作系统1. 操作系统的概念(正确)2. 汇编语言在操作系统中的应用(正确)3. 实例分析:汇编语言编写简单的操作系统(正确)十二、汇编语言与设备驱动程序1. 设备驱动程序的概念(正确)2. 汇编语言在设备驱动程序开发中的应用(正确)3. 实例分析:汇编语言编写简单的设备驱动程序(正确)十三、汇编语言与嵌入式系统1. 嵌入式系统的概念(正确)2. 汇编语言在嵌入式系统中的应用(正确)3. 实例分析:汇编语言编写简单的嵌入式系统(正确)十四、汇编语言与汇编器的使用1. 汇编器的概念(正确)2. 汇编器的使用方法(正确)3. 实例分析:使用汇编器编写和调试汇编程序(正确)十五、汇编语言与汇编语言的未来发展1. 汇编语言的发展趋势(正确)2. 汇编语言在未来的应用领域(正确)3. 汇编语言学习的方法与建议(正确)重点和难点解析本文主要介绍了汇编语言程序设计的基础知识和应用领域,通过详细的章节安排,从汇编语言的基本概念、语法规则、程序设计步骤、常用指令及其功能、输入输出操作、杂项指令、子程序调用、程序举例、调试与优化等方面进行了深入讲解。
微机原理---汇编语言习题(完整参考答案)

微机原理---汇编语⾔习题(完整参考答案)MIS 硬件原理复习内容1.数的不同进制转换,原码、反码、补码转码,BCD码2.掌握D触发器逻辑3.D触发器组成的电路:卡诺图及简化、真值表、波形图、状态转换图4.三态门、总线结构5.存储器扩展⽅法:地址总线的作⽤,内存分页技术,地址译码⽅法,译码器6.86X 系列CPU 结构框图7.8086寄存器组,寻址⽅式8.指令,伪指令9.数据定义,完整程序结构10.汇编语⾔上机及调试过程1.分别指出下列指令中的源操作数和⽬的操作数的寻址⽅式:(1)MOV SI, 200(2)MOV CX, DA TA[SI](3)ADD AX, [BX][DI](4)AND AX, BX(5)PUSHF2.指出指令MOV AX, 2010H 和MOV AX, DS:[2010H]的区别3.写出以下指令中内存操作数的所在地址(1)MOV AL, [BX+5](2)MOV [BP+5], 5(3)INC BYTE PTR[SI+3](4)MOV DL, ES:[BX+DI](5)MOV BX, [BX+SI+2]4.判断下列指令书写是否正确(1)MOV DS, 0100H (错)(2)MOV AL, BX (错)(3)MOV BL, F5H (错)(4)MOV DX, 2000H (对)(5)INC [BX] (对)(6)MOV 5, AL (错)(7)MOV [BX], [SI] (错)5.若SP=2000H, AX=3355H, BX=4466H, 试指出执⾏下列指令后有关寄存器的值:(1)PUSH AX;执⾏后AX=? SP=? (AX=3355H SP=1FFEH)(2)PUSH AXPUSH BXPOP DX;执⾏后AX=? DX=? SP=?(AX=3355H DX=4466H SP=1FFEH)6.假设想从100中减去AL中的内容,⽤SUB 100, AL是否正确?如果不对,应⽤什么⽅法?7.有如下程序,当AL某位为何值时,可将程序转⾄AGIN2语句。
微机原理与汇编语言复习题及参考答案

中南大学网络教育课程考试复习题及参考答案微型机原理与汇编语言一、 选择题:1. 设AL=0A8H, CX=2, CF=1, 执行RCL AL, CL 指令后, AL 中的值为 ( ( ))A. 51HB. A3HC. 47HD. 0C5H2. 下述指令的执行结果是 MOV AL, 0C2HAND AL, 0F0HA.AL=40HB.AL=20HC.AL=0C0HD.AL=0E0H3. 完成对CL 寄存器的内容乘以4的正确操作是 ( ))A.ROL CL, 1 ROL CL, 1B.MUL 4C.SHL CL, 1 SHL CL, 1D.MOV CL, 2SHL CL, CL4. 无论BH 中原有的数是奇数或偶数, 若要使BH 中的数一定为奇数, 应执行的指( A. ADD BH, 01H B. OR BH, 01H C. XOR BH, 01H D. TEST BH, 01H( 5. 假设( AL) = 37H, ( BL) = 95H, 执行指令IMUL BL 后( AX) = ))A. 0E903HB. HC. 0DBBHD. H6. 下面的数据传送指令中, 错误的操作是 A. MOV SS:[BX+DI], 1000H ( B. MOV DX, 1000HD. MOV DS, HC. MOV WORD PTR[BX], 1000H 7. CPU 要访问的某一存储单元的实际地址称 ( ))A .段地址B .偏移地址C .物理地址D .逻辑地址8. 某存储单元的物理地址是12345H, 能够作为它的段地址有 ( A .2345H B .12345H C .12340H D .1234H9. 计算机能直接识别的的语言 ( )(A .汇编语言B .机器语言C .高级语言D .低级语言10. 下列指令中操作数在代码段中的是 )A .MOV AL,25HB .ADD AH,BLC .INC DS:[25]D .CMP AL,BL11.直接、 间接、 立即三种寻址方式指令的执行速度, 由决至慢的排序为 ( ))A .直接、 立即、 间接 C .立即、 直接、 间接B .直接、 间接、 立即D .不一定12.若栈顶的物理地址是 011,当执行完指令CALL AX 后, 栈顶的物理地址是( A . 211 B . 111 C .200FFH D .200FEH13.当执行完下列指令序列后, 标志位CF 和OF 的值是 ( )MOV AX,OC126HMOV BX,5AB7HSUB AX,BXA .0, 0B .0, 1C .1, 0D .1, 114. JMP BX 的目标地址偏移量是( ) 。
中南大学《微型机原理与汇编语言》课程作业(在线作业)二及参考答案

(一) 单选题1. 现有,,,,,,,,,,指令执行MOVAX,BX后,AX寄存器中的内容()。
(A)0002HH(B)0100H(C)7856H(D)3412H参考答案:(B)2.,,,执行指令JMPFAR PROB(其机器码的十六进制表示为EA46010020)后,IP的值为()。
(A)4601H (B) 20H (C) 46H (D) 1766H参考答案:(A)3. 寄存器间接寻址中,操作数在()。
(A)通用寄存器(B)堆栈(C)主存单元(D)段寄存器参考答案:(C)4.,,,执行指令JMPNEAR PTR OTHER(其机器码的十六进制表示为E90016)后,IP的值为()。
(A)1766H (B) 46H (C) 16H (D) 7017H参考答案:(C)5. 已知,,则执行指令LDSBX,ARR后,寄存器DS中的内容为()。
(A) 4000H(B)2000H(C)0080H(D)6AE0H参考答案:(A)6. 的源操作数的物理地址是()。
(A)(B)(C)(D)参考答案:(A)7. 在顺序结构的流程图中,不包含有()。
(A)起始框(B)终止框(C)判断框(D)处理框参考答案:(C)8. 执行下列两条指令后,MOVAL,0C2H ,ANDAL,0F0H ,AL 中的值为()。
(A) 40H(B) 20H (C) 0C0H (D) 0E0H参考答案: (C)9. 下列哪个标志位不受指令SAHF 的影响()。
(A) SF(B) ZF (C) AF (D) DF参考答案: (D) 10. 已知,执行指令NEGDX 后,DX 中的值为()。
(A)657FH(B)6580H(C)9A7FH(D)9A80H参考答案: (B) 11.设,,,偏移量,使用BX ,SI 和D的相对基址变址寻址方式,得到的有效地址为()。
(A)2865H(B)700DH(C)47A8H(D)712DH参考答案: (D)12. 指令CWD 所指行的操作是将AX 中的符号位扩展至下列哪个寄存器中()。
汇编语言程序设计课后答案

汇编语言程序设计课后答案第二章(更新完毕~)1。
在80X86微机的输入输出指令中,I/O端口号通常是由DX寄存器提供的,但是有时也可以在指令中直接指定00---FFH的端口号。
试问,可直接由指令指定的I/0端口数~解答:有256个~~ 书上有原话~~可以找到~~2。
有两个16位字节1EE5H和2A3CH分别存放在80X86微机的存储器的000B0H 和000B3H单元中,请用图表示出它们在存储器里的存放情况。
解答:如下图.第一个络子为000B0H字单元,注意,是字单元~~第五个格子为000B3H字单元~,学计算机的,竟然连个表格也做不好!3. 图在书上,我就不画了,太麻烦~~直接答吧~解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH4.对了,看这个的人.,肯定都有那本书,所以,以后我就不抄题目哈~~~解答: 这三个物理地址都是3017AH,正好说明了不同的段地址和偏移地址对应同一物理地址~~5.解答: CS+IP 第一个字的物理地址为: 0AAA40H6.解答: 图,实在不知道怎么画,待我想办法~~ 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07。
下列操作可使用那些寄存器?(1)加法和减法AX ,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL ,.等~~(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS ,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7) 将要从堆栈取出数据的地址BP,SP,SS8。
可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9。
一一对应;5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O第三章1。
汇编语言程序设计答案

汇编语言程序设计答案2篇汇编语言程序设计答案(一)汇编语言是一种底层的计算机语言,通过程序设计来控制计算机硬件的运行。
它是计算机体系结构的基础,可以用来编写高效的程序,实现各种任务。
下面是两个关于汇编语言程序设计的答案,帮助初学者理解汇编语言的基本概念和编程技巧。
答案一:```assemblymov ax, 5mov bx, 6add ax, bx```这个程序的作用是将寄存器ax的值设置为5,寄存器bx的值设置为6,然后将ax和bx的值相加,结果保存在ax中。
最后,ax的值为11。
答案二:```assemblymov ax, 10mov bx, 2div bx```这个程序的作用是将寄存器ax的值设置为10,寄存器bx的值设置为2,然后将ax和bx的值相除,商保存在ax中,余数保存在dx中。
最后,ax的值为5,dx的值为0。
通过以上两个简单的答案,我们可以看到汇编语言的基本操作和计算能力。
编写汇编语言程序需要了解计算机的底层架构和指令集,因为每种计算机体系结构都有不同的汇编语言。
因此,学习汇编语言需要掌握计算机组成原理和计算机体系结构的基本知识。
在编写汇编语言程序时,我们通常需要使用一些常见的指令,例如mov(数据传送)、add(加法运算)、sub(减法运算)、mul(乘法运算)、div(除法运算)、jmp(跳转指令)等等。
掌握这些常用指令和相应的语法规则是学习汇编语言的基础。
另外,汇编语言程序设计也需要学习如何使用寄存器和内存。
寄存器是存储在CPU内部的非常快速的存储器,可以暂时存储数据和指令。
CPU可以直接读取和写入寄存器中的数据。
内存是存储在计算机主存储器中的大量数据和指令。
CPU需要通过地址来访问内存中的数据和指令。
要编写高效的汇编语言程序,我们需要理解计算机的硬件原理和底层运行机制。
了解汇编语言可以提供对程序的细粒度控制,对程序性能的优化有很大帮助。
总的来说,汇编语言程序设计是一项复杂而有趣的任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机作业汇编程序参考标准答案————————————————————————————————作者:————————————————————————————————日期:1.编写一个完整的源程序:X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的那个数,并存入W单元中20.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。
DA TA SEGMENTBUF1 DW -56,24,54,-1,89,-8……BUF2 DW 45,-23,124,345,-265,……SUM DW 10 DUP(0)DA TA ENDS2.编程:把存储单元A和B中的两个压缩BCD数相加,结果存入存储单元C中,并将结果显示3.4. 将DISP单元中存放的一压缩BCD码内容显示出来。
(如果能显示为(DISP)=XXH更好)4. 将字节变量DISP的内容(00H-FFH任意值)显示出来。
(如果能显示为(DISP)=XXH 更好)5.将带符号字节变量A、B中的大数送C单元中。
DA TA SEGMENTA DB 60H ;50H ;50HB DB 50H ;60H ;50HC DB ?DA TA ENDSTCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV AL,ACMP AL,BJGE NEXT ;A>=BMOV AL,BMOV C,ALNEXT: MOV C,AL ;A<BMOV AH,4CHINT 21HCODE ENDSEND START6.设X为带符号字变量,求X的绝对值放入Y单元中。
DA TA SEGMENTX DW -1 ;1 ;0Y DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN: MOV AX,DA TAMOV DS,AXMOV AX,XCMP AX,0JGE NT ;JNS NTNEG AXNT: MOV Y,AXMOV AH,4CHINT 21HCODE ENDSEND MAIN7编程:比较D1、D2单元中的字符,相同显示YES,不同显示NO8. 编制程序实现符号函数(+127≥X≥-128)。
DA TA SEGMENTX DB 10H ;00H ;-1Y DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV AL,XCMP AL,0JL NEXT1CMP AL,0JG NEXT2MOV Y,0JMP RESNEXT1: MOV Y,-1JMP RESNEXT2: MOV Y,1RES: MOV AH,4CHINT 21HCODE ENDSEND START10、编程:内存自buf单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把结果连续存放到自resut开始的单元中。
11.编写程序统计BUF单元开始的长度为20的字符串中包含字符‘A’的个数。
12.将BUF起始的字节单元中最大的数(带符号数)放MAX单元中。
14.编程:使用冒泡法实现对N个无符号数从小到大排序。
(参考)DA TAREA SEGMENTA DW N DUP(?)FLAG DW ?DA TAREA ENDSPROGRAM SEGMENTMAIN PROC FARASSUME DS:DATAREA,CS:PROGRAM START:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAREAMOV DS,AXMOV CX,NMOV SI,0DEC CXLOOP1:MOV DI,CXMOV BX,0LOOP2:MOV AX,A[BX]CMP AX,A[BX+2]JGE CONTINUEMOV SI,1XCHG AX,A[BX+2]MOV A[BX],AX CONTINUE:ADD BX,2LOOP LOOP2MOV CX,DITEST SI,0FFHJZ LOOP3LOOP LOOP1MOV CX ,NMOV SI, 0LOOP3:MOV DX,A[SI]ADD SI ,2MOV AH, 02HINT 21HLOOP LOOP3MOV AX,4C00HINT 21HMAIN ENDP PROGRAM ENDSEND START内存BUF单元开始存放20个字节数,编程将按从小到大的顺序排列,并存放在原存储区中。
(没错)DA TA SEGMENTBUF DB 4,5,20,1,3,6,2,10,9,15,14,13,16,18,17,19,8,11,12,7CN EQU $-BUFDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV CX,CN-1;循环n-1次19LOP1: MOV SI,0PUSH CX;入栈19LOP2: MOV AL,BUF[SI]CMP AL,BUF[SI+1]JLE NEXT;第一个小XCHG AL,BUF[SI+1];第一个大,就交换MOV BUF[SI],ALNEXT: INC SILOOP LOP2POP CX;出栈19LOOP LOP1MOV AH,4CHINT 21HCODE ENDSEND START15. 在字节数组中找出第一个值为0的数据,并将其偏移地址存入RES单元中,若无,则RES存入FFFFH。
16.从键盘输入一个字符,若为‘0’~‘9’的字符则显示“digital”, 若为‘A’~‘Z’的字符则显示“CHARACTER”,否则显示“other”。
(可连续操作,按ESC键退出)P R I N T :M O VA H , 0 9E X I T :M O VA H , 4 C HI N T2 1 HODEENDSENDSTART19.在数据段中变量WEEK存储星期一至星期日的英文缩写(MON、TUE、WED、THU、FRI、SAT、SUN),DAY单元中用数1~7分别表示星期一到星期日,编程根据DAY的内容显示对应的英文缩写。
DA TA SEGMENTWEEK DB 'MON','TUE','WED','THU','FRI','SAT','SUN'DAY DB 4DA TA ENDS;----------------------------------------------------------------------STAK SEGMENT STACKDW 30 DUP(?)STAK ENDS;-----------------------------------------------------------------------CODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXXOR BX,BXMOV BL,DAYDEC BLMOV DL,BLSHL BL,1ADD BL,DLMOV CX,3MOV AH,2LOP: MOV DL,[BX]INT 21HINC BXLOOP LOPDONE: MOV AH,4CHINT 21HCODE ENDSEND STARTPage 9 最后一题Page 9 8255与系统总线连接示意图编程:已知在以ARRAY为首地址的数据区中存放10个带符号字节数据:ARRAY DB 1,2,-1,3,4,-2,-3,4,5,-6编程将ARRAY分成两个数组:正数数组P_ARY和负数数组N_ARY。
(参考)DA TA SEGMENTARRAY DW,1,2,-1,3,4,-2,-3,4,5,-6P_ARY DW 10 DUP(?)N_ARY DW 10 DUP(?)NUM1 DB 00HNUM2 DB 00HDA TA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOP LEA SI,ARRAYMOV CX,0AHAGAIN:CMP [SI],0JB D1MOV AL,NUM1INC ALMOV NUM1,ALLEA DI,P_ARYMOV [DI+AL],[SI]LOOP AGAINJMP NEXTD1:MOV AL,NUM2 INC ALMOV NUM2,AL LEA DI,N_ARY MOV [DI+AL],[SI] LOOP AGAIN NEXT:MOV CX,NUM1 LEA SI,P_ARY AGAIN1:MOV AH,02H MOV DL,[SI]INC SILOOP AGAIN1 MOV CX,NUM2 LEA SI,N_ARY AGAIN2:MOV AH,02H MOV DL,[SI]INC SILOOP AGAIN2MOV AH,4CHINT 21H CODE ENDSEND START13.编程:已知有几个元素存放在以BUF+1为首址的字节存贮区中,个数放在BUF单元中。
试统计其中正数、负数和零的个数。
DA TA SEGMENTBUF DB 03H,35H,81H,00HN_PLUS DB 0N_NEG DB 0N_ZERO DB 0DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CL,[BX]INC BX LOP:MOV AL,[BX]CMP AL,0JG TOPSJE TOZRINC N_NEGJMP NEXT TOPS:INC N_PLUSJMP NEXT TOZR:INC N_ZERONEXT:INC BXDEC CLJNZ LOPMOV AH,4CHINT 21H CODE ENDSEND START。