汇编程序:十进制数转换成二进制数
微机原理与接口第二版(陈红卫版)参考答案及复习纲要
第一章1.将下列十进制数转换成二进制数。
(1)49 (2)49.75 (3)100 (4)100.8125解:(1)(49)10=(110001)2(2)(49.75)10=(110001.11)2(3)(100)10=(1100100)2(4)(100.8125)10=(1100100.1101)22.将下列十六进制数转换成二进制数和十进制数。
(1)FAH (2)78A2H (3)FFFFH (4)3CH解:(1)(FA)16=(11111010)2=(250)10(2)(78A2)16=(111100010100010)2=(30882)10(3)(FFFF)16=(1111111111111111)2=(65535)10(4)(3C)16=(111100)2=(60)103.将下列二进制数转换成十六进制数和八进制数。
(1)101101.11 (2)1111111 (3)1101001011.01 (4)10111101解:(1)(101101.11)2=(2D.C)16=(55.6)8(2)(1111111)2=(7F)16=(177)8(3)(1101001011.01)2=(34B.4)16=(1513.2)8(4)(10111101)2=(BD)16=(275)84.设机器字长为8位,写出下列各二进制数的原码、反码和补码。
(1)+1010101 (2)-1000000 (3)+1111111 (4)-1111111解:(1)原码:01010101;反码:01010101;补码:01010101。
(2)原码:11000000;反码:10111111;补码:11000000。
(3)原码:01111111;反码:01111111;补码:01111111。
(4)原码:11111111;反码:10000000;补码:10000001。
5.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出。
汇编代码.386将十进制按位转换成为二进制互相转化实验报告
汇编代码.386将十进制按位转换成为二进制互相转化实验报告全文共四篇示例,供您参考第一篇示例:引言汇编语言是一种底层的计算机语言,它直接面向计算机的硬件和指令集架构。
在计算机科学领域中,对汇编语言的理解和掌握是非常重要的,因为它可以帮助程序员更深入地理解计算机系统的工作原理。
本文将围绕着汇编语言中的十进制到二进制的转换,展开一项实验报告,通过编写汇编代码.386实现十进制和二进制的相互转换,并对实验结果进行分析和总结。
实验目的1. 了解汇编语言中的数据处理、位操作等基本概念和指令;2. 掌握利用汇编语言将十进制数字转换为二进制数,并将二进制数转换为十进制数的方法;3. 加深对计算机底层原理的理解,提高汇编语言编程能力。
实验过程1. 十进制转为二进制我们使用汇编语言编写代码,将给定的十进制数字转换为二进制数。
我们可以选择一个整数N作为输入,然后使用位操作指令将其转换为对应的二进制数。
在汇编语言中,可以使用移位操作来实现这一转换。
我们可以将整数N的每一位通过移位操作得到对应的二进制位,直到整个数转换完成。
2. 二进制转为十进制接下来,我们利用汇编语言编写代码,实现将给定的二进制数转换为十进制数的功能。
对于一个二进制数,我们可以通过相应的位操作和乘法操作将其转换为对应的十进制数。
具体来说,我们可以取得二进制数的每一位,并将其乘以相应位数的权值,然后求和得到十进制数。
实验结果在实验过程中,我们成功地编写了汇编代码.386来实现十进制和二进制的相互转换。
通过实际的测试和验证,我们得到了正确的转换结果。
这证明了我们的汇编代码在功能上是正确的,能够准确地进行十进制和二进制之间的转换。
实验总结通过这次实验,我们深入探讨了汇编语言中的数据处理和位操作等基本概念。
我们不仅了解了如何使用汇编语言进行十进制和二进制的转换,还加深了对计算机底层原理的理解。
我们也发现了汇编语言在实现这种功能上的高效性和灵活性。
结论本次实验通过汇编代码.386将十进制按位转换成为二进制,并实现了二进制到十进制的互相转化。
汇编语言程序设计(第四版)第4章【课后答案】
汇编语言程序设计(第四版)第4章【课后答案】汇编语言程序设计第四版【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。
〔解答〕思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。
传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成:.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov cx,7mov si,1again: mov al, byte ptr qvar[si]mov byte ptr qvar[si-1],alinc siloop againtest al,80hjz ezzmov bl,0ffhjmp doneezz: mov bl,0done: mov byte ptr qvar[7],bl.exit 0end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。
〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。
.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50inc siloop againdec dxjnz lpp.exit 0.end〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。
2.简答
简答题部分简答题目包含以下几大类内容:一.数制变换,运算,码制等二.微机组成、结构、总线三.8086/8088CPU的内部结构、大小模式构成和总线周期四.指令系统和汇编语言程序设计五.存储器组成、分类、性能、特点六.接口技术与中断技术一、数制变换,运算,码制、补码运算、溢出判断等A类:1.溢出与进位不同点?答:进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号的范围。
溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。
2.什么是组合的BCD码?什么是非组合的BCD码?答:组合的BCD码是用一个字节表示2位BCD码。
非组合的BCD码一个字节仅在低四位表示1位BCD码。
3.简述十进制数转换为二进制数的方法。
4.简述十六进制数转换为十进制数的方法。
5.在计算机中,如何表示正、负号。
答:数的最高位为符号位,并且用“0”表示正;用“1”表示负。
6.计算机中机器数有哪些常用的编码形式。
答:常用的编码有原码、反码和补码。
B类:1.原码、反码和补码是怎样定义的。
答:原码的定义:一个数的原码其尾数就是该数的真值,其最高位用来表示符号,“+”和“-”分别用“0”和“1”来表示。
反码的定义:对于正数它的反码等于原码,对于负数它的反码等于它的原码除符号位外,其余各位取反。
补码的定义:对于正数它的补码等于原码,对于负数它的补码等于它的原码除符号位外,其余各位取反后加一。
2.在计算机中,BCD码的加减运算是按什么规则进行调整的。
C类:1.简述汉字的编码规则。
答:GB2312国标字符集呈二维表,分成94行×94列,行号称为区号,列号称为位号。
每一个汉字或符号在码表中都有各自一个惟一的位置编码,该编码就是字符所在的区号(行号)及位号(列号)的二进制代码(7位区号在左、7位位号在右,共14位),也称为汉字的区位码。
因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。
8086汇编语言习题解答
8086/8088汇编语言习题解答第一章、试根据自己使用计算机的经历,列举几个必须使用或最好是使用汇编语言编制程序的事例。
、试完成下列数制间的转换⑴、十进制数转换为8位二进制数十进制:100 对应二进制:01100100B十进制:56 对应二进制:00111000B十进制:111 对应二进制:01101111B十进制: 120 对应二进制:01111000B十进制: 70 对应二进制:01000110B⑵、8位二进制数(无符号数)转换为十进制数二进制:01010101B 对应十进制:85二进制:B 对应十进制:170二进制:B 对应十进制:240二进制:00001111B 对应十进制:15⑶、十进制数转换为十六进制数十进制:40 对应二进制:00101000B十进制:80 对应二进制:01010000B十进制:105 对应二进制:01101001B十进制: 114 对应二进制:01101101B十进制: 207 对应二进制:B、试把下面用补码表示的二进制数转换为对应的十进制真值二进制补码:01111000 对应的十进制值数真值:+120二进制补码:对应的十进制值数真值:-39二进制补码:对应的十进制值数真值:-127二进制补码:对应的十进制值数真值:-120二进制补码:00100111 对应的十进制值数真值:+39二进制补码:对应的十进制值数真值:-16、由键盘输入字符通常都是以该字符的ASCII码形式表示的。
若现在从键盘上输入十六进制数0~F,那么应如何处理才能把十六进制转换为4位二进制数0000~1111.答:将键盘输入的数0~F的ASCII码,每输入一个字符,减去30H后,再存入内存,这样就完成了把从键盘上输入的十六进制ASCII码转换为4位二进制数0000~1111.、试分别判断下列各组数据中哪个数据最大哪个最小①、A= B=0,101D C=0,101H②、A=1011B B=1011D C=1011H答:第①组:A=1×21-+1×23-=B=C=1×161-+163-=+=所以A最大,C最小第②组,B最大,A=B最小、现有一个二进制数.若将该数看着是无符号数、原码表示的带符号数、补码表示的带符号数,它对应的十进制数的真值是多少答:.的无符号数的十进制是:+182;.的原码带符号数的十进制是:-54.补码表示的带符号数的十进制是:+74、下列各组数据均为十进制数,先将各数据转换为补码表示的带符号数,然后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结果。
微机原理习题解答
微机原理习题解答第1章汇编语言基础知识习题解答1.1 什么是汇编语言?汇编语言的特点是什么?;答:为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。
汇编语言是汇编指令集、伪指令集和使用它们规则的统称。
汇编语言的特点是:(1)执行速度快。
(2)程序短小。
(3)可以直接控制硬件。
(4)可以方便地编译。
(5)辅助计算机工作者掌握计算机体系结构。
(6)程序编制耗时,可读性差。
(7)程序可移植性差。
1.2 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 127 ② 1021 ③ 0.875 ④ 6.25答:① 1111111B;177Q;7FH ② 1111111101;1775Q;3FDH③ 0.111 B;0.7Q;0.EH ④ 110.01B;6.2Q;6.4H1.3把下列二进制数转换成十进制数。
① 1001.11 ② 101011.10011 ③ 111.011 ④ 1011.1答:① 9.75D ② 43.59375D ③ 7.375D ④ 11.5D1.4 把下列八进制数转换成十进制数。
① 573.06 ② 75.23 ③ 431.7 ④ 123.45答:① 379.09375D ② 61.296875D ③ 281.875 ④ 83.5781251.5 把下列十六进制数转换成十进制数。
① 0D5.F4 ② 8BA.7C ③ 0B2E.3A ④ 6EC.2D答:① 213.953125D ② 2234.484375 ③ 2862.2265625 ④ 1772.175781251.6 把下列英文单词转换成ASCII编码的字符串。
① Upper ② Blow ③ Computer ④ What答:① 55H,70H,70H,65H,72H ② 53H,6CH,6FH,77H③ 43H,6FH,6DH,70H,75H,74H,65H,72H ④ 57H,68H,61H,74H1.7求下列带符号十进制数的8位基2码补码。
微机原理与接口技术(第二版)课后习题答案完整版
习题11.什么是汇编语言,汇编程序,和机器语言?答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
汇编语言是面向及其的程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。
2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么?答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。
3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。
答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。
“存储程序控制”的概念可简要地概括为以下几点:①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。
②在计算机内部采用二进制来表示程序和数据。
③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。
④五大部件以运算器为中心进行组织。
4.请说明微型计算机系统的工作过程。
答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。
如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。
5.试说明微处理器字长的意义。
答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。
它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。
51单片机整数二_十进制转换的快速算法
51单片机整数二—十进制转换的快速算法※■西北矿冶研究院 陈国照 摘 要旨在提高89C51系列单片机编程中经常用到的整数二—十进制转换的代码执行效率。
提出的快速算法思路是,首先求出整数中包含的1000的个数,方法是采用二进制整数的高6位作为其预估,再通过2次校正得到准确值。
算法的关键是充分利用89C51单片机的两条特殊指令———单字节乘和单字节除。
其耗费时间不及使用sprintf()函数的1/10。
关键词89C51 单片机 二—十进制转换 快速算法 89C51系列单片机历经20多年的发展,仍然长盛不衰,在工业控制及仪器仪表中得到广泛应用;用于89C51单片机软件开发的Keil C51编译系统也日臻成熟,成为89C51系列单片机软件开发的优先选择。
在单片机系统开发中,经常遇到整数二—十进制转换的问题,一般可以采用C语言中的标准函数sprintf()来实现;但由于该函数是通用格式输出函数,代码量大(超过1K B),用于整数二-十进制转换的运算时间过长(在12M Hz晶振频率下超过1ms),这在计算密集(computation intensive)的应用中是一个影响系统性能的重要因素。
在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。
经常有网友询问如何高效地实现这种转换。
笔者通过对二进制整数的深入分析,巧妙运用89C51单片机的特殊单字节乘除指令,成功地实现了整数二—十进制转换的快速算法。
本文将详细介绍快速算法,给出颇具实用性的优化代码,并与使用sprintf()函数的实现及传统的汇编代码实现进行性能比较。
1 传统的汇编代码实现要实现快速运算,很自然地想到教科书中提到的双字节二进制整数转换成3字节BCD码整数的子程序。
其采用的算法是,依次将整数的每位左移至CY位,再把CY 位左移至一个3字节队列中,并进行十进制调整。
通过16次移位完成运算,结果为压缩格式的3字节BCD编码。
汇编子程序如下:入口:双字节十六进制整数在R6、R7中。
汇编语言程序设计专科复习题及答案专科复习题
汇编语言程序设计专科复习题及答案专科复习题复习题一一、单项选择题1.对于有符号的数来说,下列哪个值最大()A:0F8H B:11010011B C:82 D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D )A:通常由字母打头的字符、数字串组成B:标号长度不能超过31个字符C:?和$不能单独作为标号D:.号不可位于标号首3.8088/8086存储器分段,每个段不超过()A.64K个字B.32K个字节C.1兆个字节D.64K个字节4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式()A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址5.若AX= - 15要得到AX=15应执行的指令是()A.NEG AXB.NOT AXC.INC AXD.DEC AX6.8086/8088系统执行传送指令MOV时()A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用()A:NOT B:OR C:AND D:XOR8.下列指令中段默认为堆栈段的是()A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]C.SUB [BX],[BP][DI]D. MOV DX,[1000H]9.关于8086/8088微机系列,下列说法哪个是正确的()A:一个存储单元由16个二进制位组成,简称字。
B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C:在内存空间中,可以无限分配段,且段的大小不受限制。
D:段与段之间可以邻接,也可以重叠。
10.下列关于堆栈的说法,错误的是()A:以“先入后出”为原则。
B:栈区最高地址单元的前一个单元为栈底。
C:运行中SP寄存器动态跟踪栈顶位置。
D:压栈和弹出都是以字节为单位。
11.表示过程定义结束的伪指令是()A.ENDPB.ENDSC.ENDD.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3)COUNT EQU $-BUF1符号COUNT等价的值是()A.6B.18C.16D.9 13.下列标志位中,可以用来判断计算结果正负的是()A:PF B:SF C:DF D:OF14.下列指令正确的是()A. MOV [100H], [BX]B.MOV DS, ESC. ADD V[BX], CXD.MOV AX, 34H15.下列哪个寄存器是属于指针寄存器()A:SI B:DX C:SP D:ES16.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。
arm汇编指令转换成二进制指令规则
arm汇编指令转换成二进制指令规则文章标题:深度解析ARM汇编指令转换成二进制指令规则在计算机科学和软件工程领域,ARM架构一直备受关注,其具有高效、灵活和优化的特点。
ARM汇编指令是一种关键的组成部分,它们需要按照特定的规则转换成二进制指令,以便计算机能够识别和执行。
在本文中,我们将全面深入地探讨ARM汇编指令转换成二进制指令的规则和过程,为您带来有价值的见解和知识。
一、ARM汇编指令概述ARM汇编指令是一种底层程序设计语言,用于直接控制计算机硬件和执行特定的指令。
它们通常由助记符组成,每条指令都对应着一个或多个机器指令,这些机器指令是计算机能够直接执行的二进制代码。
在转换过程中,我们需要了解ARM汇编指令的结构和特点,以便正确地转换成对应的二进制指令。
二、ARM汇编指令转换成二进制指令规则1. 指令格式ARM汇编指令通常由操作码、操作数和位置区域码组成。
在转换成二进制指令时,我们需要根据指令的类型和格式确定对应的二进制编码。
2. 寻址模式ARM架构支持多种寻址模式,如立即数寻址、寄存器寻址、基址偏移寻址等。
不同的寻址模式对应着不同的二进制编码规则,需要根据指令的寻址方式进行正确的转换。
3. 数据处理指令数据处理指令是ARM汇编指令中的重要部分,它们涉及对数据的操作和处理。
在转换成二进制指令时,需要考虑指令的类型、操作数和条件码等因素,并按照规则进行相应的转换。
4. 分支指令分支指令用于控制程序的跳转和执行流程,对应着计算机中的跳转指令。
在转换成二进制指令时,需要考虑分支条件、目标位置区域和跳转类型,并按照规定的格式进行转换。
5. 特权指令在ARM架构中,特权指令用于处理器的特权模式和特定的系统操作。
在转换成二进制指令时,需要按照架构规范和特权级别进行正确的编码和转换。
三、总结和回顾通过本文的深入探讨,我们全面了解了ARM汇编指令是如何转换成二进制指令的规则和过程。
在实际应用中,我们需要根据指定的指令和操作,按照规范和格式进行正确的转换,以确保计算机能够正确执行程序和指令。
汇编语言程序设计2
目录系统认识 (1)实验一数码转换编程及程序调试 (5)实验二运算类编程实验 (11)实验三分支程序、循环程序设计实验 (16)实验四子程序设计实验 (22)实验五显示程序实验 (26)实验六串行通讯应用实验 (27)附录WMD86 联机软件使用说明 (40)系统认识一、实验目的掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
二、实验设备PC微机一台,TD-PITE实验装置一套。
三、实验内容编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。
四、实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。
2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。
语言选择后,下次再启动软件,语言环境保持这次的修改不变。
在这里,我们选择汇编语言。
图13. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。
默认文件名为Wmd861。
图24. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。
图3程序:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000H ;建立数据起始地址MOV CX, 16 ;循环次数AA1: MOV [SI], ALINC SI ;地址自加1INC AL ;数据自加1LOOP AA1AA2: JMP AA2CODE ENDSEND START5. 点击,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击进行链接,链接无误输出如图5所示的输出信息。
图4图56. 连接PC与实验系统的通讯电缆,打开实验系统电源。
8086实验
实验一、寻址方式与基本指令实验一、实验目的1.熟悉8086寻址方式及基本指令功能,进一步理解和巩固课学习内容。
2.掌握汇编语言程序设计上机过程和汇编语言源程序结构。
3.熟悉Microsoft的DEBUG调试工具的使用方法。
二、实验预习要求1.认真阅读教科书第三章,了解并熟悉汇编语言程序的上机步骤及DEBUG调试工具的使用方法。
2.复习8086操作数寻址方式及基本指令功能(数据传送、算术运算和逻辑运算等)。
3.了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题外),以便在实验时进行验证。
三、实验内容1.读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。
1)程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令“MOV AX,DATA”对应的机器代码为H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令源操作数DATA的寻址方式是,其值为。
2)执行完“MOV DS,DATA”指令后,数据段寄存器DS的内容为H,源程序在数据段中定义的数据库82H、68H和88H被装入的存储单元的物理地址分别为H,H和H。
3)程序中第一条“ADD AL,[BX]”指令对应的机器代码H,它是一个字节指令,注意观察执行该指令时IP的变化情况,该指令中源操作数的寻址方式为,该操作数所在存储单元的逻辑地址(DS):(BX)为,物理地址为H;执行完该指令后(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4)执行完第二条“ADD AL,[BX]”指令后,(AL)= H,CF= ,OF= ,ZF= ,SF= ,AF= ,PF= ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5)指令“MOV SUM,AL”中,目的操作数的寻址方式为,该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。
期末汇编语言试题及答案
1。
十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16。
2. 计算机中的指令由(操作码)和( 地址码)两部分组成。
3. 8086的地址总线有20根,寻址范围为(1M )字节.4. 下一条将要执行的指令的地址存放在寄存器(指令指针寄存器)中。
5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。
6. 汇编语言源程序需经过(汇编)程序汇编,(连接)程序连接才能生成可执行文件。
7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(27272H)8. REP指令前缀与(字符串)指令配合使用.9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( D )和( E )命令.10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令(AND AL,3F );如果要求第0,1位变反,可使用指令(XOR AL,3F )11。
宏汇编适合于(程序短),(参数多)的子功能段使用;二、选择题1. 设字长N=16,有符号数7AE9H的补码表示为( D )A.9EA7H B。
76C4H C. 8417H D。
7AE9H2. 比较有符号数3260H与0B425H的大小关系为( C )A. 相等B. 小于 C。
大于 D。
不能比较3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( A )A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)4. 在指令MOV AX,[1000H]中,源操作数的寻址方式为( B )A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址5。
中断矢量表中存放的是( D )A. 中断类型号 B。
断点地址 C。
中断服务程序 D。
中断服务程序入口地址6。
将下列十进制数转换为二进制数
第一章习题1、将下列十进制数转换为二进制数:(1)23 (2)97 (3)189 (4)246 (5)2552、将下列二进制数转换为十进制数:(1)10011101 (2)00001111 (3)110101103、将下列二进制数转换为十六进制数:(1)01011101 (2)10101111 (3)111101104、将下列十六进制数转换为二进制数:(1)7FH (2)FFH (3)0FH (4)09H5、写出下列各数的原码和补码(1)-45 (2)-1 (3)36H (4)-806、将下列十六进制数用压缩的BCD码表示出来:(1)99H (2)53H (3)9H (4)40H7、将下列十进制数用非压缩的BCD码表示出来:(1)8 (2)75 (3)30 (4)998、写出下列各字符的ASCII码:(1)5 (2)9 (3)B (4)F9、一个字节为多少位二进制数?10、CPU的位数(字长)是按什么划分的?12、8086/8088内部有哪些寄存器?它们各有什么用处?13、简述8086/8088上电复位的过程。
14、8086/ 8088复位后内部寄存器的初值是什么?CPU从何单元开始执行程序?15、8088工作于最小模式和最大模式时引脚信号有何区别?16、8086/8088 有哪些地址线?它最多可以直接寻址多少字节内存单元?17、8088 是怎样解决地址线和数据线的复用问题的?18、8086/8088 内存中最多可有多少个不同的段地址?19、举例说明在8086/8088系统中如何计算内存单元的物理地址?20、若CS 为28B4H,IP 为1620H,此时,该指令在内存中的物理地址是多少?举例说明指向这一物理地址的CS值和IP值是唯一的吗?21、在最小模式下8088CPU是如何区分对存储器空间和I/O空间的访问的?它的I/O空间中最多可以有多少个8位的I/O端口?第二章习题1、8086/8088汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?2、直接寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?如果想要用某个段寄存器给出段地址,指令中如何表示?举例说明。
汇编课设-二进制数和十进制数相互转换
课程设计题目二进制数和十进制数相互转换学院计算机科学与技术学院专业计算机科学与技术班级姓名指导教师年月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:计算机科学与技术学院题目: 二进制数和十进制数相互转换初始条件:理论:学完“汇编语言程序设计”、“高级语言程序设计”和“数字逻辑”。
实践:计算机学院科学系实验中心提供计算机和软件平台。
如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)。
(2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。
(3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。
(4)设计报告格式按附件要求书写。
课程设计报告书正文的内容应包括:在正文第一行写课程设计题目;1.需求说明(要求、功能简述)或问题描述;2.设计说明(简要的分析与概要设计);3.详细的算法描述;4.源程序与执行结果(含测试方法和测试结果);5.使用说明;6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该程序进一步改进扩展的设想)。
时间安排:设计时间一周:周1:查阅相关资料。
周2:系统分析,设计。
周3~4:编程并上机调试。
周5:撰写课程设计报告。
设计验收安排:17周星期五8:00起到计算机学院科学系实验中心进行上机验收。
设计报告书收取时间:17周的星期五下午5:00之前。
指导教师签名: 2011年12月25日系主任(或责任教师)签名: 2011年12月 25日二进制数和十进制数相互转换1 设计题目二进制数和十进制数相互转换2设计要求2.1用汇编语言实现二进制数和十进制数相互转换。
2.2程序要有三个功能(0:退回DOS,1:十进制转化为二进制,2:二进制转化为十进制)。
2.3功能号输入错误时给出提示,并且可以让用户重新选择。
2.4要求输入的十进制数在0-65535之间,输入的二进制数在0-1111111111111111之间。
IBM-PC汇编语言程序设计答案(第2版)
附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2'1.3将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.4将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234~答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.5完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835)(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.6下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6)-85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=B=0A1H;CF=0;OF=1}(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=B=0F7H;CF=0;OF=01.7下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么(1) D8 (2) FF答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216;(2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。
汇编语言程序设计 第1篇 汇编语言基础知识
汇编 语言实现 汇编后的目 标文件只有 208字节
2019/1/23
11
计算机科学与技术系
《汇编语言程序设计》
1.1
汇编语言概述
1.1.2 汇编语言的特点
建议: ●充分注意“汇编”课实践性强的特点, ●多读程序,多写程序,多上机调试程序, ●熟悉PC机的编程结构, ●掌握汇编语言及其程序设计的基本概念、
2019/1/23
第 1章
汇编语言基础知识
19
计算机科学与技术系
《汇编语言程序设计》
1.2
进位计数制及其转换
1.2.2 不同数制之间的转换
(3)一般的十进制数转换成二进制数 为了将一个既有整数又有小数部分的十进制数转换成二进制 数,可以将其整数部分和小数部分分别进行转换,然后再组合 起来。 例:117.8125D = 1110101.1101B
1.1.2 汇编语言的特点
经常与高级语言配合使用,应用十分广泛。
2019/1/23
第 1章
汇编语言基础知识
9
计算机科学与技术系
《汇编语言程序设计》
1.1
汇编语言概述
1.1.2 汇编语言的特点
编程实现 c =a+b,并在屏幕上显示出结果。 #include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) { int a,b,c; a=1; b=2; c=a+b; printf(“c=%d\n",c); return 0; }
计算机科学与技术系
《汇编语言程序设计》
1.2
进位计数制及其转换
1.2.2 不同数制之间的转换
把下列十进制数转换成二进制数
习题11.1 把下列十进制数转换成二进制数、八进制数、十六进制数。
① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。
① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。
① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。
① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。
① +127 ②-1 ③-0 ④ -1281.6 求下列带符号十进制数的16位补码。
① +355 ②-11.7 计算机分那几类?各有什么特点?1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。
1.9 80X86微处理器有几代?各代的名称是什么?1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题22.1、EU与BIU各自的功能是什么?如何协同工作?2.2、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?2.3、8086对存储器的管理为什么采用分段的办法?2.4、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。
2.5、给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。
2.6、8086/8088为什么采用地址/数据引线复用技术?2.7、8086与8088的主要区别是什么?2.8、怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同2.9、8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?2.10、8086基本总线周期是如何组成的?各状态中完成什么基本操作?2.11、在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的?BHE#信号起什么作用?2.12、80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足?2.13、80386内部结构由哪几部分组成?简述各部分的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV DL,AL ;商传给DL,准备调用02功能号输出
POP AX ;将余数传给AX
PUSH AX
ADD DL,30H ;将商值DL转化为相应的ASCII码,输出到屏幕上
MOV AH,02H
LOOP A3 ;循环用于从后往前依次输出余数
MOV AH,4CH ;返回DOS,结束程序
INT 21H
CODE ENDS
END START
MOV AH,09H
INT 21H
MOV AX,A ;AX=15786
MOV BX,10000 ;BX=10000
A1: XOR DX,DX ;DX清零
DIV BX ;DX:AX除以BX,商存入AX,余数存入DX
INT 21H
MOV AX,BX
MOV CX,10
MOV DX,0
DIV CX
MOV BX,AX
POP AX ;将AX除以BX的余数传给AX
OR BX,BX ;若BX不等于0,则跳转至A1
JNE A1
JNE A2
LEA SI,NUM ;此三行使得SI指向AX除以2的最后一个余数
ADD SI,CX
DEC SI
A3: MOV DL,[SI] ;此四行用于输出余数到屏幕上
ADD DL,30H
MOV AH,02H
INT 21H
DEC SI ;SI从后往前依次指向余数单元
LEA DX,PARA2 ;输出提示符 ER JIN ZHI SHU SHI:
MOV AH,09H
INT 21H
MOV AX,A ;AX=15786
LEA SI,NUM ;NUM偏移地址传给SI
XOR CX,CX ;CX清零,准备计数
A2: XOR DX,DX ;DX清零,用以字除
DIV B ;DX:AX除以2,商存入AX,余数存入DX
MOV [SI],DL ;将AX除以2的余数放进NUM开始的存储区
INC CX ;CX用以统计以上余数的个数
INC SI ;SI指向NUM区下一个单元
CMP AX,0 ;判断AX除以2的商是否为0,若不为零则调至A2
DATA SEGMENபைடு நூலகம்
NUM DB 20 DUP(?) ;NUM数据区用于存放15786除以2的余数
A DW 15786 ;A=15786
B DW 2 ;B=2
PARA1 DB 0DH,0AH,'SHI JIN ZHI SHU SHI:$' ;定义提示符
PARA2 DB 0DH,0AH,'ER JIN ZHI SHU SHI:$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET PARA1 ;输出字符串 SHI JIN ZHI SHU SHI: