汇编语言程序+十六进制转换为二进制(子程序调用)
- 格式:doc
- 大小:112.50 KB
- 文档页数:5
汇编语言程序设计创新实验项目1. 编写一个完整的程序:根据零件的数量和总价格,计算出零件的单价。
主程序MAINPRO允许用户在键盘上输入零件数量和总价格;子程序SUBCONV 把从键盘输入的ASCII 码转化为二进制;子程序SUBCALC 计算出零件的单价;子程序SUBDISP 把二进制表示的单价转化为十进制数并显示出结果。
要求:在程序设计时要求使用顺序、分支、循环、子程序和宏汇编等多种方法解决程序设计问题,对于较大的子程序最好使用子程序嵌套,程序中如有多次重复的代码最好使用重复汇编。
2.编写一个完整的程序,分别输入有一个班学生的百分制成绩,根据学生百分制成绩转换出五级分数制。
如低于60分为E,60-69为D、70-79为C、80-89为B、90-99为A。
并统计该班学生人数。
要求:1、学生成绩从键盘接收;2、本程序可以重复运行,自行设计退出程序的方法;3、程序具有可操作性,如,应该有提示语句和判断非法操作的方法和处理方式。
3. 编写一个完整的程序,在屏幕上显示如图所示数字拼成的形状。
01234567891234567890234567890134567890124567890123567890123467890123457890123456890123456790123456784、按要求编写一个完整的程序。
要求:1、自BUFFER开始的内存单元中,存有一个ASCII码字符串。
查找已知字符串中含有多少个子字符串‘AB’的个数,将统计结果以十进制形式显示输出。
2、在查找到子字符串‘AB’后添加空格字符。
5、按要求编写一个完整的程序。
要求:1、编写子程序SORT,将内存中10个无符号字数据由小到大排序。
2、编写子程序FIND,在上述已排好的数据区里查找某一个数,若找到,显示其在数据区的位置,否则显示‘N’字符。
3、编写调用程序,完成排序及检索任务。
6、试编写一程序,要求根据用户键入的月份在终端上显示该月的英文缩写名。
汇编五套题一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共16分) 1.用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是()A.F400HB.2F80HC.F4000HD.2F800H2.设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, [1000H]则AX=( )A.8000HB.0080HC.2080HD.8020H3.下列四条指令中错误的是( )A.MOV AX, [SI]B.MOV AX, [DI]C.MOV AX, [SI+DI]D.MOV AX, [SI-DI]4.下列四条指令执行后不影响标志位的是( )A.JNC NEXTB.CMP AX, BXC.SHL AX, 1D.OR AL, AL5.已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是( )A.DEC AXB.SUB AX, 1C.AND AX , 1D.CMP AX,16.使计算机执行某种操作的命令是( )A.伪指令B.指令C.标号D.助记符7.将数据5618H存放在存储单元中的伪指令是( )A. DATA1 DW 1856HB. DATA1 DB 18H,56HC. DATA1 EQU 5618HD. DATA1 DB 18H,00H,56H,00H8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )A. 1400HB. 77F8HC. 0000HD. 0FFFFH9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。
目前,微机中普遍采用的是( )码。
A. BCD码B.二进制码C.ASCII码D.十六进制码10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为( )A.汇编语言B.高级语言C.机器语言D.低级语言11.汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是()A.VariableB.First & ldC.0FFFFHD.'Memphis'12. ORG 0030HDA1 DB 0,'0',30HDW DA1数据为3000H字存储单元的偏移地址是()A.0030HB.0031HC.0032HD.0033H13.NUM1 DB(12 OR 6 AND 2)GE 0EHNUM2 DB(12 XOR 6 AND 2)LE 0EH上述数据定义语句中,NUM1和NUM2字节单元的内容分别是()A.NUM1=0,NUM2=0B.NUM1=0,NUM2=0FFHC.NUM1=0FFH,NUM2=0D.NUM1=0FFH,NUM2=0FFH14. 要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是()A.DA1 DB 'AB'B.DA1 DW 'AB'C.DA1 DB 0ABHD.DA1 DW 0ABH15.DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是()A.0ABCDHB.0AB9AHC.55CDHD.559AH16. 执行1号DOS系统功能调用,从键盘输入的字符值存放在()寄存器中。
附录:《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) 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.3将下列十六进制数转换为二进制数和十进制数:(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.4完成下列十六进制数的运算,并转换为十进制数进行校核:(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.5下列各数均为十进制数,请用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=10100001B=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=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。
第3章3.1:汇编语言有什么特点解:汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序3.2编写汇编语言源程序时,一般的组成原则是什么?解:(1)完整的汇编语言源程序由段组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内(5)通常,程序还需要一个堆栈段3.3 MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式?各用于创建什么性质的程序?解:3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?解:开始位置:用标号指明返回DOS:利用DOS功能调用的4CH子功能来实现汇编停止:执行到一条END伪指令时,停止汇编3.5逻辑段具有哪些属性?解:段定位、段组合和段类型。
3.6给出采用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序……解:stack segment stackdb 1024(0)stack endsdata segmentstring db 'Hello,Assembly!',0dH,0aH,‘$’data endscode segment 'code'assume cs:code,ds:data,ss:stackstart: mov dx,offset stringmov ah,9int 21hcode endsend start3.7DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1). EXE程序程序可以有多个代码段和多个数据段,程序长度可以超过64KB通常生成EXE结构的可执行程序(2). COM程序只有一个逻辑段,程序长度不超过64KB需要满足一定条件才能生成COM结构的可执行程序(MASM 6.x需要采用TINY模式)3.8举例说明等价“EUQ”伪指令和等号“=”伪指令的用途解:符号定义伪指令有“等价EQU”和“等号=”:符号名 EQU 数值表达式符号名 EQU <字符串>符号名=数值表达式EQU用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。
《汇编语言程序设计》教案附:习题参考答案《汇编语言程序设计》(第4版)钱晓捷主编前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (1)1.1进位计数制与不同基数的数之间的转换 (1)1.2二进制数和十六进制数的运算 (2)1.3计算机中数和字符的表示 (3)1.4几种基本的逻辑运算 (3)第 2 章 80X86计算机组织 (4)2.180X86微处理器 (4)2.2基于微处理器的计算机系统构成 (4)2.3中央处理机 (5)2.4存储器 (6)2.5外部设备 (7)第 3 章 80X86的指令系统和寻址方式 (8)3.180X86的寻址方式 (8)3.2程序占有的空间和执行时间 (10)3.380X86的指令系统 (10)第 4 章汇编语言程序格式 (27)4.1汇编程序功能 (27)4.2伪操作 (27)4.3汇编语言程序格式 (31)4.4汇编语言程序的上机过程 (34)第 5 章循环与分支程序设计 (37)5.1循环程序设计 (37)5.2分支程序设计 (38)5.3如何在实模式下发挥80386及其后继机型的优势 (38)第 6 章子程序结构 (40)6.1子程序的设计方法 (40)6.2子程序的嵌套 (41)6.3子程序举例 (41)第 7 章高级汇编语言技术 (43)7.1宏汇编 (43)7.2重复汇编 (44)7.3条件汇编 (45)第 8 章输入/输出程序设计 (46)8.1I/O设备的数据传送方式 (46)8.2程序直接控制I/O方式 (47)8.3中断传送方式 (47)第 9 章 BIOS和DOS中断 (50)9.1键盘I/O (50)9.2显示器I/O (52)9.3打印机I/O (53)9.4串行通信口I/O (54)第 10 章图形与发声系统的程序设计 (55)10.1显示方式 (55)10.2视频显示存储器 (55)10.3EGA/VGA图形程序设计 (56)10.4通用发声程序 (57)10.5乐曲程序 (58)第 11 章磁盘文件存取技术 (59)11.1磁盘的记录方式 (59)11.2文件代号式磁盘存取 (60)11.3字符设备的文件代号式I/O (61)11.4BIOS磁盘存取功能 (62)附录:《IBM—PC汇编语言程序设计》习题参考答案 (63)第一章.习题 (63)第二章.习题 (64)第三章.习题 (65)第四章.习题 (79)第五章.习题 (84)第六章.习题 (104)第七章.习题 (118)第八章.习题 (125)第九章.习题 (130)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
2022年广东创新科技职业学院计算机网络技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、访问相联存储器时,()A.根据内容,不需要地址B.不根据内容,只需要地址C.既要内容,又要地址D.不要内容也不要地址2、某存储器容量为64KB,按字节编址,地址4000H~5FFFH为ROM区,其余为RAM 区。
若采用8K×4位的SRAM芯片进行设计,则需要该芯片的数量是()。
A.7B.8C.14D.163、计算机中表示地址时,采用()。
A.原码B.补码C.移码D.无符号数4、float 型数据常用IEEE754单精度浮点格式表示。
假设两个float型变量x和y分别存放在32位寄存器fl和f2中,若(fl)=CC900000H,(f2)=BOC00000H,则x和y之间的关系为()。
A.x<y且符号相同B.x<y符号不同C.x>y且符号相同D.x>y且符号不同5、用海明码对长度为8位的数据进行检/纠错时,若能纠正一位错,则校验位数至少为()。
A.2B.3C.4D.56、系统总线中的数据线、地址线、控制线是根据()来划分的。
A.总线所处的位置B.总线的传输方向C.总线传输的内容D.总线的材料7、总线按连接部件不同可分为()。
A.片内总线、系统总线、通信总线B.数据总线、地址总线、控制总线C.主存总线I/O总线、DMA总线D.ISA总线、VESA总线、PCI总线8、在计算机系统中,表明系统运行状态的部件是()。
A.程序计数器B.指令寄存器C.程序状态字D.累加寄存器9、计算机硬件能够直接执行的是()。
1.机器语言程序IⅡ.汇编语言程序Ⅲ.硬件描述语言程序入A.仅IB.仅I、ⅡC.仅I、ⅢD. I、Ⅱ 、Ⅲ10、在独立编址的方式下,存储单元和I/O设备是靠()来区分的。
A.不同的地址码B.不同的地址线C.不同的指令D.不同的数据线11、下列选项中,用于设备和设备控制器(I/O接口)之间互连的接口标准是()。
重庆三峡学院成教院2006级计本专业《汇编与微机原理》模拟题第一卷一、一个有19个字的数据区,它的起始地址为70A1H:DDF2H,请写出这个数据区首末字单元的物理地址.二、写出下列指令中的源操作数与目的操作数的寻址方式:(1)MOV SI, 1000 (2) MOV BP, AX(3)MOV [SI], 1000 (4) MOV BP, [SI](5)LEA DI, [2130H] (6) AND DL,[BX+SI+20H](7)SUB AH, DH (8) MOV AX, CX(9)ADD SI, [BX] (10) MOV [BX+100], DI三、有符号定义语句如下:BUF DB 2,3,4,5,'1345','A'EBUF DB 7LT EQU EBUF-BUF问LT的值是多少?四、程序填空题1.在一字符串中搜索,当搜索到‘M’停止搜索,将此单元地址存储;当未搜索到‘M’,也结束工作.STRING DB ‘THIS IS A EXAMPLE’ADDRBF DW ?.;预置参数;预置参数MOV AL,‘M’CLDMOV AL,‘M’CLD;搜索JZ NEXTHLTNEXT:;搜索到‘M’,存单元地址MOV ADDRBF,DIHLT2.下列为将二位压缩的BCD码转换为两个ASCII字符的程序段,将合适指令填入空白处,形成正确的程序段.BCDBUF DB 96H ;BCD码ASCBUF DB 2 DUP(?);ASCII字符.MOV AL,BCDBUFMOV BL,ALMOV CL,4;高位转换MOV ASCBUF, AL;低位转换MOV ASCBUF+1,BL五、填空题:1.汇编语言一般采用两次扫描完成对的汇编任务。
第一次扫描主要完成的建立,第二次扫描将每个程序行转换为或,从而生成。
同时还可以根据需要生成文件和文件,两次扫描都以遇到指令结束.2. 8086 CPU中共有个寄存器,分为组。
一、实验目的掌握键盘接收数据的方法,并了解键盘数据显示时需要转换为ASCII码及转换原理。
二、实验内容编写程序,将键盘键入的四位十六进制数转换为等值的二进制数,并在屏幕上显示。
三、程序流程图十六进制数转换为二进制数程序流程图四、实验源程序CRLF MACROPUSH AXPUSH DXMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HPOP DXPOP AXENDMDATA SEGMENTMESS DB 'INPUT HEXNUMBER:','$'ERROR DB 'INPUT ERROR',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPLLL: MOV AH,09HMOV DX,OFFSET MESSINT 21HCRLFXOR DX,DXMOV BL,04HGGG: MOV AH,01HINT 21HJZ PPPCMP AL,20HJZ PPPCMP AL,30HJB KKKSUB AL,30HCMP AL,0AHJB KKKSUB AL,07HCMP AL,0FHJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20HGETS: MOV CL,04HSHL DX,CLXOR AH,AHADD DX,AXDEC BLJNZ GGGCRLFCALL ZHXSCRLFJMP LLLKKK: PUSH DXCRLFMOV AH,09HMOV DX,OFFSET ERROR INT 21HPOP DXPPP: CRLFMOV AX,4C00H INT 21H ZHXS PROCMOV CX,0010H MOV BX,DX TTT: ROL BX,1MOV DL,BLAND DL,01H ADD DL,30H MOV AH,02H INT 21HLOOP TTTRETZHXS ENDPCODE ENDSJB GETSCMP AL,11HEND START五、实验结果六、思考题键盘接收的字符是什么形式的?程序中是如何转换的?答:键盘接收到的字符是ASCII码形式。
课程设计报告--汇编程序设计(进制转换)汇编语言课程设计报告:代码与数制之间的转换内容提要:本课程设计的主要内容是代码与数制之间的转换~程序的主要功能如下:1. 将十六进制数转换成其对应的ASCII码2. 将ASCII码转换成其对应的十六进制数3. 实现二进制数与十六进制数之间相互转换4. 实现十进制数与二进制数之间相互转换5. 实现十六进制数与十进制数之间相互转换数制转换是计算机科学技术中最为基础的运算~在日常生活中~人们习惯性地使用十进制数进行计算。
而在计算机内部~所有的信息,数、字符、汉字、计算机的指令、状态,都是用二进制数来表示的。
在计算机中~二进制数的运算、处理比十进制数的更容易实现。
有时为了缩短书写~在计算机中还采用十六进制数。
所以~我们需要把数从二进制数形式转换成其他进制的形式~甚至在不同的进位制之间进行转换。
- 1 -汇编语言课程设计报告:代码与数制之间的转换目录一、前言〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.1 程设计的目的〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.2 代码与数制之间的转换程序的意义〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.3 数制之间的转换程序的主要功能〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3正文〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 二、2.1 代码与数制之间相互转换程序的设计大纲〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 2.2 代码与数制之间相互转换程序的结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 2.3 友好交互界面结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.4 程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.1 主程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.2 键盘输入子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.3 ASC码转16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃72.4.4 16进制转ASC进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.5 2,16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.6 2?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.7 16?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.8 2~10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.9 2?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.10 10?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.11 10~16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.12 10?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃122.4.13 16?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12三、源程序及其注释〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃13四、课程设计体会〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29五、参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29- 2 -汇编语言课程设计报告:代码与数制之间的转换课程设计题目:代码与数制之间的转换一、前言1.1 课程设计的目的, 加深对汇编语言课程理论方面的理解, 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力, 提高调试程序的能力1.2 代码与数制之间的转换程序的意义数制转换是计算机科学技术中最为基础的运算,在日常生活中,人们习惯性地使用十进制数进行计算。
南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:***********名:***南通大学计算机类课程实验报告南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告六、实验结果<一><二>七、实验存在问题和解决办法程序一:检查发现第16行的“ADD AL,20H”将数字0写成了大写字母O,排除错误后可正常运行。
字符串后忘了加$,导致转换为小写字母后出现如下乱码:字符串后加结束符$后乱码消除。
程序二:分析表明第28行“CMP BL,0FFH”中FFH前要加0八、实验心得和建议南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV AX,4C00HINT 21HCODE ENDSEND START(如不够,请另附纸)六、实验结果七、实验存在问题和解决办法分析表明错误原因如下:(1)O写成0;(2)相对寻址只限于用SI、DI、BX、BP,而程序中却用了其它寄存器。
修改后仍有错误如下:错误原因:使用“INC BYTE PTR[BX+2]”忘了加BYTE PTR修改后仍得不到正确结果,错误如下:错误原因:“CMP [DI],'0'”应改成“CMP BYTE PTR[DI],'0'”错误全部修改后得到所要的结果八、实验心得和建议南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告MOV AX,4C00HINT 21HCODE ENDSEND START(如不够,请另附纸)六、实验结果七、实验存在问题和解决办法出错原因:(1)DEC,DW 是保留字;(2)“MOV CL,10000”中10000超过范围CL的最大范围。
C51单片机汇编语言程序设计一、二进制数与十六进制数之间的转换1、数的表达方法为了方便编程时书写,规定在数字后面加一个字母来区别,二进制数后加B十六进制数后加H。
2、二进制数与十六进制数对应表二进制十六进二进制制0000000100100011010001010110011101234567100010011010101111001101 11101111十六进制89ABCDEF3、二进制数转换为十六进制数转换方法为:从右向左每4位二进制数转化为1位十六进制数,不足4位部分用0补齐。
例:将(1010000110110001111)2转化为十六进制数解:把1010000110110001111从右向左每4位分为1组,再写出对应的十六进制数即可。
0101000011011000111150D8F答案:(1010000110110001111)2=(50D8F)16例:将1001101B转化为十六进制数解:把10011110B从右向左每4位分为1组,再写出对应的十六进制数即可。
100111109E答案:10011110B=9EH4、十六进制数转换为二进制数转换方法为:将每1位十六进制数转换为4位二进制数。
例:将(8A)16转化为二进制数解:将每位十六进制数写成4位二进制数即可。
8A10001010答案:(8A)16=(10001010)2例:将6BH转化为二进制数解:将每位十六进制数写成4位二进制数即可。
6B01101011答案:6BH=01101011B二、计算机中常用的基本术语1、位(bit)计算机中最小的数据单位。
由于计算机采用二进制数,所以1位二进制数称作1bit,例如110110B为6bit。
2、字节(Byte,简写为B)8位的二进制数称为一个字节,1B=8bit3、字(Word)和字长两个字节构成一个字,2B=1Word。
字长是指单片机一次能处理的二进制数的位数。
如AT89S51是8位机,就是指它的字长是8位,每次参与运算的二进制数的位数为8位。
新版汇编语言程序设计【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU 可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
STACK SEGMENT STACK 'STACK'STA DB 40 DUP(?)STACK ENDSDATA SEGMENTFLAG DB 0DATA ENDSDECIMAL_TO_BIN_HEX SEGMENTASSUME CS:DECIMAL_TO_BIN_HEX,DS:DATA START: MOV AX,DATAMOV DS,AXREPEAT:CALL DEC2BINCALL CRLFTEST FLAG,1JNZ REPEATCALL BINCALL HEXCALL CRLFJMP REPEATDEC2BIN PROC NEARMOV BX,0MOV FLAG,BLNEWCHAR:MOV AH,1INT 21HCMP AL,3HJNZ CONTINUEMOV AX,4C00HINT 21HCONTINUE:SUB AL,30HJL EXITCMP AL,9DJG EXITCBWXCHG AX,BXMOV CX,10DMUL CXJC ERRXCHG AX,BXADD BX,AXJC ERRJMP NEWCHARERR: MOV FLAG,1EXIT: RETDEC2BIN ENDP;*******************************************; CRLF PROC NEARMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRET;*******************************************; ONE PROC NEARROL BX,1MOV AL,BLAND AL,1ADD AL,30HMOV DL,ALMOV AL,2INT 21HRETONE ENDP;********************************************; BIN PROC NEARMOV CX,10HROTATEL:CALL ONELOOP ROTATELCALL CRLFRETBIN ENDP;*********************************************; HEX PROC NEARMOV CH,4ROTATE3:MOV CL,4ROL BX,CLMOV AL,BLAND AL,0FHADD AL,30HCMP AL,3AHJL PRINTITADD AL,7HPRINTIT:MOV DL,ALMOV AH,2INT 21HDEC CHJNZ ROTATE3CALL CRLFRETHEX ENDP;*********************************************; DECIMAL_TO_BIN_HEX ENDSEND STARTdata1 db 'input the number(4 bits):$' ;0-F之间任意四位的输入 data2 db 'the binary number:$'data endscode segmentassume cs:code,ds:datamain proc farstart:mov ax,datamov ds,axmov dx,offset data1mov ah,09hint 21hcall crlfmov bx,0mov cx,4m1:mov ah,01hint 21hcmp al,3ahjl m2sub al,7hjmp m2m2:sub al,30hcbwxchg ax,bxmov dx,16dmul dxxchg ax,bxadd bx,axloop m1call crlfmov dx,offset data2mov ah,09hint 21hcall crlfmov cx,16m3:test bx,8000hjnz m4mov dl,'0'mov ah,02hint 21hjmp m5m4:mov dl,'l'mov ah,02hint 21hm5:shl bx,1loop m3mov ah,4chint 21hretmain endpcrlf proc near;回车换行子程序 mov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02hint 21hretcrlf endpcode endsend start。
16进制转换为2进制的方法嗨,朋友们!今天我们来聊一聊16进制转2进制的那些小技巧。
在计算机科学中,进制转换是一项基本而重要的技术,而16进制转2进制也是其中非常常见的一种操作。
下面,我就来详细介绍一下几种方法。
方法一:直接转换法这是最直接的方法,即将每个十六进制位直接转换为对应的四位二进制数。
例如,十六进制的数字“1”转换为二进制就是“0001”,而“F”(表示15)转换为二进制就是“1111”。
示例:16进制:1A3转换为二进制:0001 1010 0011方法二:分组转换法这种方法是将十六进制的每两个数字视为一组,然后每组直接转换为四位二进制数。
示例:16进制:1A3分组后为:1A 3转换为二进制:0001 1010 0011方法三:使用编程语言内置函数在编程语言中,很多都提供了内置的函数来进行进制转换。
例如,在Java中,你可以使用`BigInteger`类来完成这种转换。
Java示例:javaString hexInput = "1A3";String binaryOutput = new BigInteger(hexInput, 16).toString(2);System.out.println("16进制数: " + hexInput);System.out.println("2进制数: " + binaryOutput);方法四:手动转换法对于小规模的转换,你可以手动进行转换。
这种方法需要你对二进制和十六进制有深入的理解。
示例:16进制:1A3手动转换:1(0001) A(1010) 3(0011)转换为二进制:0001 1010 0011方法五:十六进制计算器辅助现在很多计算器都支持多进制计算,你可以直接在计算器上输入十六进制数,然后选择转换为二进制。
示例:在计算器上输入:1A3选择转换为二进制得到结果:0001 1010 0011以上就是16进制转2进制的一些方法,希望对大家有所帮助!无论是直接转换、分组转换,还是使用编程语言或计算器辅助,掌握这些方法都能让你的进制转换更加得心应手。
山东专升本(计算机)历年真题试卷汇编2(总分:168.00,做题时间:90分钟)一、填空题(总题数:18,分数:36.00)1.填空题每空。
请将每一个空的正确答案写在答题卡上。
(分数:2.00)__________________________________________________________________________________________ 解析:2.将汇编语言源程序转换成等价的目标程序的过程称为 1。
(分数:2.00)填空项1:__________________ (正确答案:正确答案:汇编)解析:解析:汇编语言源程序不能直接执行,必须先把汇编语言源程序翻译成机器语言程序(称为目标程序)才能被执行。
汇编程序就是把汇编语言源程序翻译成机器可以执行的由机器语言来表示的目标程序的翻译程序,其翻译过程叫汇编。
高级语言要用翻译的方法把它翻译成机器语言程序才能执行。
翻译的方法有“解释”和“编译”两种。
一个高级语言源程序必须经过“编译”和“连接装配”才能成为可执行的机器语言。
(1)解释程序:解释程序接受用某种高级程序设计语言编写的源程序,然后对源程序的每条语句逐句进行解释并执行,最后得出结果。
也就是说,解释程序对源程序是一边翻译,一边执行,不产生目标程序。
(2)编译程序:编译程序是翻译程序,它将高级语言源程序翻译成与之等价的用机器语言表示的目标程序,其翻译过程称为编译。
3.计算机的算法具有可行性、有穷性、 1和输入/输出特点。
(分数:2.00)填空项1:__________________ (正确答案:正确答案:确定性)解析:4.“64位计算机”是指计算机的 1,其越长,计算机的运算精度就越高。
(分数:2.00)填空项1:__________________ (正确答案:正确答案:字长)解析:解析:“64位计算机”是指该计算机处理数据的字长值是64位。
字长是指计算机的运算部件能同时处理的二进制数据的位数,它与计算机的功能及用途有很大的关系。
如下程序段中的“DEC CX”指令执行了几次MOV CX,4JCXZ NEXTAGAIN: DEC CXJNZ AGAINNEXT: ....A:1 B:5 C:0 D:4 √下列语句无异义的是A:MOV AL,[BX] √B:INC [AX] C:MOV [AX],5 D:JMP [BP]解答:MOV AL,[BX]无异义, 是字节操作;INC [AX]和MOV [AX],5无法知道是字节操作还是字操作;JMP [BP]不知是段内间接转移还是段间间接转移。
在汇编语言编程中,结束用户程序返回操作系统应使用的中断指令是A:RET 2 B:INT 10H C:RET D:INT 20H √指令MOV ES:[BX],AX中,目的操作数的寻址方式为A:寄存器寻址B:存储器直接寻址C:立即寻址D:寄存器间接寻址√指令MOV AX,1234H中的立即数1234H是存储在A:数据段√B:堆栈段C:代码段D:附加段十进制数–100 的8 位二进制数的补码为A:10011100 √B:10011101 C:1100100 D:10011011将10个字数据3456H存放在存储单元中的伪指令是A:DW 10 DUP(5634H) B:DD 10 DUP(5634H) C:DW 10 DUP(3456H) √D:DD 10 DUP(3456H)条件转移指令JNE 的测试条件是A:CF=1 B:CF=0 C:ZF=1 D:ZF=0 √解答:JNZ 指令和JNE 指令的测试条件都是ZF=0, 即上一次的运算结果不为零/不相等, 则转移。
移位指令SAL用于A:无符号数除2 B:有符号数乘2 C:无符号数乘2 √D:有符号数除2解答:在8086指令集中,算术左移SAL不存在,等价于逻辑左移SHL下述对PSW寄存器中标志位不产生影响的指令是A:JMP NEXT √B:SHL AL,1 C:TEST AL,80H D:INC SI假设VAR为变量,指令MOV BX, OFFSET VAR 的寻址方式是A:直接寻址B:存储器寻址C:立即数寻址√D:间接寻址在条件转移指令中,结果不为0则转移的指令是A:JZ B:JNS C:JS D:JNZ √对于LOOP NEXT循环指令,循环的范围是A:在-256~+256字节之内B:在-128字节之内C:在-128~+127字节之内√D:在+127字节之内A:AND AX,0 B:MOV AX,0 √C:SUB AX,AX D:XOR AX,AX下面指令中影响状态位CF的指令是A:INC AX B:NOT AX C:DEC AX D:NEG AX √在分支指令中,利用符号进行判断的指令是A:JZ B:JS √C:JC D:JO子程序是通过什么来定义的。
课程设计任务书学生姓名:易杨专业班级:电信 0802 指导教师:曾刚工作单位:信息工程学院题目:进制转换程序设计初始条件:具备数字电路的理论知识;具备微机原理的理论知识和实践能力;熟悉汇编语言编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常用接口电路的设计使用方法。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、程序实现二进制、十进制、十六进制之间的转换2、在命令提示下输入相应进制数,回车后进行转换3、输入错误时应声响报警并拒绝输入4、程序采用汇编语言在PC机上完成5、完成符合学校要求的设计说明书时间安排:一周,其中2天程序设计,2天程序调试,1天完成课程设计报告书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1原理分析 (1)2程序设计流程 (3)2.1程序流程图 (3)2.2设计思路 (4)3程序设计 (5)3.1堆栈段数据段程序设计 (5)3.2主程序设计 (5)3.3输入二进制程序 (7)3.4输入十进制程序 (8)3.5输入十六进制程序 (8)3.6输出二进制程序 (9)3.7输出十进制程序 (9)3.8输出十六进制程序 (11)3.9回车键确定程序 (11)3.10报警程序 (12)4运行结果 (13)5心得体会 (15)参考文献 (16)摘要日常生活与实际应用中,往往需要计算机处理的信息是多种多样的,如各种进位制的数据,不同语种的文字符号和各种图像信息等。
但在计算机内部采用的是二进制计数制,这种进制表达方法对于人们研究分析是不那么方便的。
本次课程设计将通过所学的微机原理知识理论,用汇编语言编写程序,实现二进制、十进制与十六进制之间的相互转换,并在MF2KP软件上演示。
关键词:汇编程序进制转换MF2KP1 原理分析进位计数制是人们利用符号来计数的方法。
一种进位计数制包含一组数码符号和两个基本因素。
数码是用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。
汇编语言(本科)武汉理工大学在线作业一、判断(共计100分,每题2.5分)1、在汇编语言中,寻找操作数的过程就是操作数的寻址一般来说,存放在指令代码中的操作数称为立即数,存放在CPU的内部寄存器中的操作数称为寄存器操作数,存放在内部存储器中的操作数称为存储器操作数。
A.正确B.错误答案:【A】2、在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为1030H、106CH、10B8H。
A.正确B.错误答案:【A】3、单元中有一条二字节指令,化为二进制是11001101,化为八进制是315。
A.正确B.错误答案:【A】4、数-27的补码表示是11100101(8位),扩展到16位为1111111111100101。
A.正确B.错误答案:【A】5、求出十六进制数9D60与十六进制数62A0之和,并根据结果设置标志位SF、ZF、CF和OF的值,和为0000H;SF=0,ZF=1,CF=1,OF=0。
A.正确B.错误答案:【A】6、假设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP (?)COUNT DD?PLENTH EQU $-PARTNO问PLENTH的值为16H。
A.正确B.错误答案:【A】7、伪指令是它是在对源程序汇编期间由汇编程序处理的操作,它不产生任何机器代码。
A.正确B.错误答案:【A】8、十六进制数0FFF8H表示的十进制正数为65528,表示的十进制负数为-8。
A.正确B.错误答案:【A】9、寻找操作数的过程就是操作数的寻址方式。
A.正确B.错误答案:【A】10、要求屏蔽寄存器AL第0,1两位,则要执行指令AND AL,0FCH;如果要求把AL的第0,1位变反,可使用指令XOR AL,03H。
A.正确B.错误答案:【A】11、SP称为堆栈指示器,它用来存放当前栈顶的EA。
A.正确B.错误答案:【A】12、将二进制数111110化为十进制是62,将十进制数31化为二进制为11111,化为八进制为37。