微机原理汇编语言实例及习题
- 格式:ppt
- 大小:109.00 KB
- 文档页数:14
《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第1 章微型计算机系统概述〔习题1.2 〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5 〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕:也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。
设备通过接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
习题1.6 〕什么是总线?微机总线通常有哪3 组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3 组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
习题1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)(4)中断(5)总线解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
微机原理---汇编语⾔习题(完整参考答案)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)(正确)比较两个无符号数的大小(量个数放在内存S3的连续两个单元中),将大数存入MAX单元中。
DATAS SEGMENTBUF DB 1,2CNT EQU $-BUFDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV CX,CNT-1LEA BX,BUFMOV AL,[BX]L2: INC BXCMP AL,[BX]JAE L1MOV AL,[BX]L1:LOOP L2ADD AL,30H- 1 - / 16MOV DL,ALMOV AH,2INT 21HMOV AH,4CHINT 21HCODES ENDSEND STAR2)(正确)试编一程序,求三个带符号数据中的最大值,并将最大值存入MAX单元中,设三个带符号数分别在三个变量X,Y,Z中存储。
DATAS SEGMENTX DB 5Y DB-2Z DB 0MAX DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,XMOV BL,YCMP AL,BLJG L1MOV AL,BLL1:MOV BL,ZCMP AL,BLL2: MOV MAX,ALMOV AH,4CHINT 21HCODES ENDSEND START3)(正确)根据MODE单元中编号0-7分别转向L0-L7标号处,执行L0-L7处分别完成显示‘0-7’字符,即当MODE=0时,转向L0标号,完成显示‘0’,当MODE=7时,转向L7标号,完成显示‘7’。
DATAS SEGMENTMODE DB 0DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:- 3 - / 16MOV AX,DATASMOV DS,AXMOV AL,MODECMP AL,0JZ L0CMP AL,1JZ L1CMP AL,2JZ L2CMP AL,3JZ L3CMP AL,4JZ L4CMP AL,5JZ L5CMP AL,6JZ L6MOV DL,'7'MOV AH,02HINT 21HJMP L8L0:MOV DL,'0'MOV AH,02HINT 21HJMP L8L1:MOV DL,'1'MOV AH,02HINT 21HJMP L8L2:MOV DL,'2'MOV AH,02HINT 21HJMP L8L3:MOV DL,'3'MOV AH,02HINT 21HJMP L8L4:MOV DL,'4'- 5 - / 16MOV AH,02HINT 21HJMP L8L5:MOV DL,'5'MOV AH,02HINT 21HJMP L8L6:MOV DL,'6'MOV AH,02HINT 21HJMP L8L8:MOV AH,4CHINT 21HCODES ENDSEND START4)(正确)根据输入值(0-4)的不同,执行不同的操作,用转移标法编写程序。
微机原理与汇编语言实验报告姓名x x x学号xxxxxx 专业班级计科x班课程名称微机原理与汇编语言实验日期2014.10.22实验名称循环程序设计实验成绩一、实验目的1、掌握循环程序的设计方法。
2、掌握比较指令、转移指令和循环指令的使用方法。
3、进一步掌握调试工具的使用方法。
二、实验内容1、实验原理(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题(2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数2、实验步骤(1)流程图(2)实验源码.model small.stack ;定义堆栈段.data ;定义数据段inf1 db "Please input a number(1-627):$"inf2 db 0ah, 0dh, "1+2+......+$"ibuf db 7, 0, 6 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov dx, offset inf1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax 中mov ah, 09hint 21hmov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1mov ch, 0mov si, offset ibuf+2mov ax, 0loop1: mov dx, 10mul dxand byte ptr [si], 0Fhadd al, [si] 从键盘输入一个十进制数,并将其转换为二进制数,存放在AX中开始结束素、、(CX)-1=0累加循环次数送CX(MOV CX,AX)AX清0(AX中存放累加和)BX送1(BX存放每次循环累加的数,每循环一次,BX值加1)ADD AX,BXINC BX累加和(在AX中)转换为十进制数并显示YNadc ah, 0inc siloop loop1mov cx, ax ;计算1+2+3+...+nmov ax, 0mov bx, 1loop2: add ax, bxinc bxloop loop2mov di, offset obuf+6 ;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3dec dimov [di], '='mov dx, offset inf2 ;结果输出mov ah, 09hint 21hmov cl, ibuf+1 ;显示nmov ch, 0mov si, offset ibuf+2loop4: mov dl, [si]add dl, 30hinc simov ah, 02hint 21hloop loop4mov dx, dimov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题1源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段inf1 db 0ah, 0dh, "1+2+......+$"obuf1 db 6 dup(0)obuf2 db 7 dup(0) ;除了六位数字外还要有一个=号.codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出 1+2+......+mov ah, 09hint 21hmov ax, 0 ;计算1+2+3+...+nmov bx, 1loop1: add ax, bxinc bxcmp ax, 60000jbe loop1push ax ;将最终结果备份入栈push bx ;将n备份pop cxmov di, offset obuf1+5;将cx二进制数转换为十进制数并以ascii的形式存于obuf1mov byte ptr [di], '$'mov ax, cxmov bx, 10loop2: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop2mov dx, di ;输出nmov ah, 09hint 21hpop axmov di, offset obuf2+6;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf2mov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3dec dimov [di], '='mov dx, di ;=输出结果mov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题2源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段inf1 db 'Please input six num:', 0ah, 0dh, '$'inf2 db 'sum:$'obuf0 db 0ah, 0dh, '$'ibuf db 5, 0, 4 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov bx, 6 ;设置外层循环次数loop1: mov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1 ;设置内层循环次数mov ch, 0mov si, offset ibuf+2mov ax, 0loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mul dxand byte ptr[si], 0Fhadd al, [si]adc ah, 0inc siloop loop2push ax ;将结果入栈保存mov dx, offset obuf0 ;回车换行mov ah, 09hint 21hdec bxcmp bx, 0jnz loop1mov cx, 6mov ax, 0loop3: pop bxadd ax, bxloop loop3mov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf mov byte ptr [di], '$'mov bx, 10loop4: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop4mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21hmov dx, dimov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题3源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式) .stack ;定义堆栈段.data ;定义数据段inf db "Please input a num(0-65535):$"inf2 db 0ah, 0dh, "The num of 1:$"ibuf db 6, 0, 5 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov es, axmov ah, 09h ;输出提示信息Please input a num:mov dx, offset infint 21hmov ah, 0Ah ;接收一个无符号十进制整数(小于65536)mov dx, offset ibufint 21hmov ax, 0mov cl, ibuf+1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中mov ch, 0mov si, offset ibuf+2loop1: mov dx, 10mul dxand byte ptr[si], 0Fhadd al, [si]adc ah, 0inc siloop loop1mov bx, 0loop2: shr ax, 1adc bx, 0cmp ax, 0jnz loop2mov ax, bxmov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3mov ah, 09h ;输出提示信息The num of 1:mov dx, offset inf2int 21hmov ah, 09h ;将统计结果在屏幕上显示出来mov dx, diint 21hmov ax, 4c00hint 21hend start实验习题4源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段N equ 5ibuf db 4, 0, 3 dup(0)inf1 db 'Please input N num(0-255):', 0ah, 0dh, '$'inf2 db 'Sort:', 0ah, 0dh, '$'buf db N dup(0)obuf2 db 4 dup(0)obuf db 0ah, 0dh, '$'.codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov di, offset bufmov bx, N ;设置外层循环次数loop1: mov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1 ;设置内层循环次数mov ch, 0mov si, offset ibuf+2mov ax, 0loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mul dxand byte ptr[si], 0Fhadd al, [si]inc siloop loop2mov [di], alinc dimov dx, offset obuf ;回车换行mov ah, 09hint 21hdec bxcmp bx, 0jnz loop1mov bx, N-1 ;比较大小mov cx, bxmov dx, bxmov di, offset bufloop3: mov si, dimov al, [di]inc siloop4: cmp [si], aljbe loop5mov al, [si]mov ah, [di]mov [si], ahmov [di], alloop5: inc siloop loop4dec dxmov cx, dxinc didec bxcmp bx, 0jne loop3mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21h;结果输出mov cx, Nmov si, offset bufloop6: mov di, offset obuf2+3;将buf中的二进制数转换为十进制数并以ascii的形式存于obuf2,并输出 mov byte ptr [di], '$'mov bx, 10mov al, [si]mov ah, 0loop7: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop7mov dx, dimov ah, 09hint 21hmov dx, offset obufmov ah, 09hint 21hinc siloop loop6mov ax, 4c00hint 21hend start3、实验结果(1)实验结果(2)实验习题1程序流程图:(3)实验习题2(4)实验习题3(5)实验习题4三、实验总结1)通过本次实验我掌握循环程序的设计方法,掌握比较指令、转移指令和循环指令的使用方法,进一步掌握了调试工具的使用方法。
第一章思考题与习题1.1计算机的发展到目前为止经历了几个时代?每个时代的特点是什么?1.2计算机的特点表现在哪些方面?简述计算机的应用领域。
1.3冯·诺依曼型计算机的结构由哪些部分组成?各部分的功能是什么?分析其中数据信息和控制信息的流向。
1.4计算机中的CPU由哪些部件组成?简述各部分的功能。
1.5微型计算机系统主要由哪些部分组成?各部分的主要功能和特点是什么?1.6微型计算机的分类方法有哪些?1.7 什么是微型计算机的系统总线?定性说明微处理器三大总线的作用。
1.8 微型计算机的总线标准有哪些?怎样合理地加以选择?1.9 简述微型计算机的主要应用方向及其应用特点。
1.10 奔腾系列微处理器有哪些特点?与其它微处理器相比有哪些改进?1.11 解释并区别下列名词术语的含义。
(1)微处理器、微计算机、微计算机系统(2)字节、字、字长、主频、访存空间、基本指令执行时间、指令数(3)硬件和软件(4)RAM和ROM(5)机器语言、汇编语言、高级语言、操作系统、语言处理程序、应用软件(6)CMOS、BIOS、Cache芯片1.12 微型计算机系统软件的主要特点是什么?它包括哪些内容?1.12 定性比较微型计算机的内存储器和外存储器的特点及组成情况。
第二章思考题与习题2.1 简述计算机中“数”和“码”的区别,计算机中常用的数制和码制有哪些?2.2 将下列十进制数分别转化为二进制数、八进制数、十六进制数和压缩BCD数。
(1)125.74 (2)513.85 (3)742.24(4)69.357 (5)158.625 (6)781.6972.3 将下列二进制数分别转化为十进制数、八进制数和十六进制数。
(1)101011.101 (2)110110.1101(3)1001.11001 (4)100111.01012.4 将下列十六进制数分别转化为二进制数、八进制数、十进制数和压缩BCD数。
(1)5A.26 (2)143.B5(3)6AB.24 (4)E2F3.2C2.5 根据ASCII码的表示,查表写出下列字符的ASCII码。
(完整版)华电微机原理与技术汇编语⾔题⽬及答案⼀微机原理与接⼝技术汇编题⽬(1)数据块传送1、将数据段中2000H单元开始存放的10个数(8位数)传送到3000H开始的10个字节中。
2、将数据段DATA1中的10个字数据(16位数)传送到数据段DATA2中。
提⽰:1、指定数据的起始地址:(如果不指定起始地址,则起始地址为0000H)DA TA SEGMENTORG 2000HDB 1,,2,3,4,5,6,7,8,9,10 ; DB定义字节数据ORG 3000HDB 10 DUP(0); 预留10个单元存放结果,初值预定义为0DA TA ENDS定义的内存单元为:2、定义字数据命令为:DWDA TA1 SEGMENTDW 1,,2,3,4,5,6,7,8,9,10 ; DW定义字数据DA TA1 ENDS1、已知0~15的平⽅值表,查表求X(X是0到15 间任⼀数)的平⽅值,送到Y单元,⽤两种⽅法。
2、已知0~255的平⽅值表,查表求X的平⽅值,送到Y单元。
提⽰:0到15的平⽅表,每个平⽅值为⼀个字节;0到255的平⽅表,每个平⽅值为2个字节;调试程序,平⽅表中的数据定义⼏个就⾏,⽬的是程序正确即可。
⼀个字为两个字节,在内存中低位在前,⾼位在后。
1、计算多字节数据1122334455667788H与99AABBCCDDEEFF00H的和。
2、计算8字节的BCD码⼗进制数1122334455667788H与9988776655443322H的和3、计算10个字数据的和(数据⾃⼰定义)。
提⽰;1、多字节数据在内存中存放,低位在前,⾼位在后DA T1 DB 88H,77H,66H,55H,44H,33H,22H,11HDA T2 DB 00H,0FFH,0EEH,0DDH,0CCH,0BBH,0AAH,99HDA T3 DB 9 DUP(0)2、BCD⼗进制加法⼆进制加法指令: ADDBCD⼗进制加法: ADDDAA;⼗进制调整指令,仅对AL 作为加法的累加和寄存器进⾏调整(4)计算表达式的值1 计算表达式)2/()7*)((+-=Y Y X Z 的值,已知X=10,Y=5。
微机原理练习七编程应用题1. 编写8086汇编语言程序片段,完成将数据段中偏移地址为1000H单元中的一个字数据的高8位传送至寄存器AL,低8位传送至寄存器DL。
2 请用2种不同的方法写出程序段,完成将源操作数(SRC)和目的操作数(DST)互换。
3分别用2种不同的方法完成在字存储单元DB1中存储数据2000H的操作(提示:分别用指令语句和伪指令语句)。
4 判断MEM单元的数据,编程将奇数存入MEMA单元,将偶数存入MEMB单元。
(提示:如果一个数的最低位为1,则该数为奇数,否则为偶数。
仅编写程序段)5 编一个程序段,数据段有100个无符号字节数据块BUF,试找出其中最小的数并放入MIN单元中(注:不低于/高于等于条件转移指令为JNB)。
6.编一个程序段。
数据段有100个无符号字节数据块BUF,试找出其中数值为0的数据个数并放入ZERO单元中(注:结果不为零条件转移指令为JNZ)。
7. 在数据段BUF开始的连续10个单元中存放有10个无符号数,编程找出其中的最大值放入MAX单元中。
(提示:低于/不高于等于条件转移指令为JB,仅编程序段)8.在数据段BUF开始的连续10个单元中存放有10个无符号数,编程求出它们的和并放入SUM单元中。
(提示:假设结果不溢出,仅编程序段)参考答案1.编写8086汇编语言程序片段,完成将数据段中偏移地址为1000H单元中的一个字数据的高8位传送至寄存器AL,低8位传送至寄存器DL。
MOV BX,1000HMOV DL,[BX]INC BXMOV AL,[BX]HLT2.请用2种不同的方法写出程序段,完成将源操作数(SRC)和目的操作数(DST)互换。
① MOV AX,SRCMOV BX,DSTXCHG AX,BXMOV SRC,AXMOV DST,BX② MOV AX,SRCMOV BX,DSTMOV SRC,BXMOV DST,AX③ PUSH WORD PTR [SRC]PUSH WORD PTR [DST]POP WORD PTR [SRC]POP WORD PTR [DST]3.分别用2种不同的方法完成在字存储单元DB1中存储数据2000H的操作(提示:分别用指令语句和伪指令语句)。
▪汇编语言源程序结构(P151数据段名SEGMENT 堆栈段名SEGMENT…数据段名ENDS 堆栈段名ENDS附加段名SEGMENT 代码段名SEGMENT…附加段名ENDS 代码段名ENDSEND【例4-1】已知X和Y是数据段中的两个无符号字节单元,用程序完成表达式Z=(X2+Y2)/2的计算。
DATA SEGMENTX DB 15Y DB 34Z DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX ;初始化数据段MOV AL,X ;X中的内容送ALMUL AL ;计算X×XMOV BX,AX ;X×X乘积送BXMOV AL,Y ;Y中的内容送ALMUL AL ;计算Y×YADD AX,BX ;计算X2+Y2 (这里的五个2是平方)SHR AX,1 ;计算(X2+Y2)/2MOV Z,AX ;结果送Z单元MOV AH,4CHINT 21H ;返回DOSCODE ENDSEND START ;汇编结束▪例:8086系统工作于最小模式下时,用64K×8的SRAM芯片构成128K×8的存储体,要求该存储体所占地址空间为00000H~1FFFFH。
画出数据线、地址线及有关控制信号的连接方法。
1、扩展存储器的数据线,地址线2、选用几片3、根据地址范围写出所有地址线,弄清楚哪些作为高地址线,哪些作为低地址线4、8086考虑奇偶地址,A0,BHE5、画出CPU,存储器芯片,连接数据线,读写控制逻辑,低地址线(片内地址线)6、根据高位地址线的状态接逻辑门或138译码器到片选信号输入端。
例8086系统扩展8255并行接口,其数据线接8086CPU数据线低8位,PA口接输出设备,PB口接输入设备,PC.7~PC.4 连接四个开关,由8086CPU将开关状态取入,然后根据开关状态去控制PC.3~PC.0驱动四个发光二极管(高电平亮,低电平灭)。
微机原理实验(含解答程序)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN微机原理实验课题(共16个内容,附解答程序)(汇编程序可以使用MASM FOR WINDOWS)1.将偏移地址为2000h开始的100个单元依次设置为0~99。
2.将两个64位的二进制数相加,记录相加的和以及各个状态标志的值。
3. 编写程序,在屏幕上分行显示自己的姓名、学号。
4. 编写程序,通过键盘输入0——9之间的一个数字,利用查表法计算其平方。
在DEBUG下查看执行结果。
5. 用分支结构设计程序实现符号函数100010xy xx>⎧⎪==⎨⎪-<⎩,要求x和y存放在内存单元中,并将判断的结果在屏幕上显示输出。
6. 在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示。
7. 在键盘上输入一个字符,判断它是一个数字、大写字母还是小写字母,若为数字,则显示digital,若为字母,显示letter,否则,显示other。
8. 将字节型变量x的低四位(一位十六进制数)以十六进制数的形式显示。
9. 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N (N+1)大于200为止,并将结果由屏幕上显示出来。
10. 将字形变量x以二进制数的形式在屏幕上显示输出。
11. 将字形变量x以十六进制数的形式在屏幕上显示输出。
12. 将内存单元缓冲区中的符号数(20个)按从小到大的顺序排列,并以十六进制数的形式显示。
13. 编制程序计算S=1+2+3+……+N,并将结果由屏幕上显示出来。
(要求:在屏幕上显示提示信息,提示输入N,N用十六进制表示,且N小于0FH,用子程序实现(段内),将输入的结果用十六进制数输出显示,显示结果的程序用子程序是实现(段间))。
14.要求在键盘上输入一个小于四位的十进制数,将其转换为二进制数存放,并讲转换后的结果以十六进制数的形式在屏幕上显示出来。
微机原理与汇编语言课后习题解答第1章计算机基础知识1.微处理器、微型计算机和微型计算机系统三者之间有什么不同?2.为什么把微型计算机的基本结构说成是总线结构?3.试说明字节和字长的概念。
4.CPU在内部结构上由哪几部分组成?CPU应具备哪些主要功能?5.为什么把微型计算机的基本结构说成是总线结构?6.微型计算机采用总线结构有什么优点?7.____________是以CPU为核心,加上存储器、I/O接口和系统总线组成的。
A.微处理器 B.微型计算机 C.微型计算机系统8.堆栈指针的作用是用来指示______________。
A.栈底地址 B.栈顶地址 C.下一条要执行指令的地址9.在微程序控制器中,机器指令与微指令的关系是________________。
A.每条机器指令对应一条微指令B.一段由机器指令编成的程序由一条微指令来执行C.每条机器指令由一段微指令编成的微程序来解释执行10.计算机内的“溢出”是指其运算的结果_________________。
A.为无穷大B.超出了计算机内存储单元所能存储的数值范围C.超出了该指令所指定的结果单元所能存储的数值范围11.程序计数器(PC)的位数取决于____________。
A.存储器的容量 B.指令字长 C.机器字长12.8位补码操作数“10010011”等值扩展为16位后,其机器数为_________。
A.1111111110010011 B.0000000010010011 C.100000001010011 13.计算机的字长越长,一个字所能表示的数据精度就越高;在完成同样精度的运算时,则处理速度______。
A.越高 B.越低 C.不一定14.具有指令流水线结构的CPU,一般情况下指令的执行时间主要取决于______。
A.指令执行的步骤 B.CPU有无等待状态C.CPU的时钟周期 D.CPU内的Cache存储器大小15.将下列十进制数分别转化为二进制数、十六进制数和压缩BCD码。
微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验一汇编语言程序设计-(具体题目)一、实验目的(根据实际情况修改):1、熟悉MASM编译环境,了解程序的汇编方法;2、熟悉常用汇编指令,学习汇编程序设计方法;3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式;4、了解冒泡法原理,学习多重循环的编程方法。
二、实验内容:编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。
三、程序流程图和程序代码1、流程图2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)data segmentbuf1 db 8,7,6,5,4,3,2,1data endscode segmentassume cs:code,ds:datastart: mov ax,data //传送数据段datamov ds,axmov dx,7 //dx放外循环7次L3: mov cx,dx //cx放内循环7次lea si,buf1 //将db里的数据传送到siL2: mov al,[si]cmp al,[si+1] //比较[si]与[si+1]jb L1 //[si]<[si+1],跳转到L1xchg al,[si+1] //[si]>[si+1],两两交换mov [si],alL1: inc si //si减1loop L2 //循环L2dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值mov ah,4chint 21hcode endsend start四、调试过程及遇到的问题1、程序执行截图2、调试用到的命令-U命令:查看数据段地址;-d命令:查看运行前后存储器内容;-g命令:运行程序;-t命令:查看运行前后寄存器和存储器内容。
3、遇到的问题及解决办法问题:运行程序后,数据1在存储器地址末尾没变。
第一章习题与参考答案之蔡仲巾千创作1. 微处理器,微型计算机和微型计算机系统三者之间有何区别?答:微处理器即CPU,它包含运算器、控制器、寄存器阵列和内部总线等部分,用于实现微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储器、I/O接口电路以及总线构成;微型计算机系统则包含硬件系统和软件系统两大部分,其中硬件系统又包含微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部分,而微型计算机系统又主要由微型计算机作为其硬件构成。
2. CPU在内部结构上由哪几部分构成?CPU应具备哪些主要功能?答:CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。
3. 累加器和其它通用寄存器相比有何分歧?答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。
累加器除了可用做通用寄存器存放数据外,对某些操纵,一般操纵前累加器用于存放一个操纵数,操纵后,累加器用于存放结果。
4. 微型计算机的总线有哪几类?总线结构的特点是什么?答:微型计算机的总线包含地址总线、数据总线和控制总线三类,总线结构的特点是结构简单、可靠性高、易于设计生产和维护,更主要的是便于扩充。
5. 举出10个微型计算机应用的例子。
答:略6. 计算机I/O接口有何用途?试列出8个I/O接口。
答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。
例如:串行通讯口(COM口)、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(USB、SCSI等)。
7. 现在,计算机主板上一般都包含哪些I/O接口?I/O接口卡如何与主板相连?答:现在,计算机主板上一般包含串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、USB接口等。
微机原理与汇编语言课后习题答案【篇一:微机原理、汇编语言与接口技术周杰英张萍习题答案汇总】与参考答案(部分)1. 把下列二进制数转换成十进制数、十六进制数及 bcd 码形式。
(1) 10110010b =(2) 01011101.101b =解:(1) 10110010b = 178d = b2h = (0001 0111 1000(2)= (1001 0011.0110 0010 0101 )bcd2. 把下列十进制数转换成二进制数。
(1) 100d =(2) 1000d =(3) 67.21d =解:(1) 100d = 01100100b(2)1000d = 1111101000b(3)3. 把下列十六进制数转换成十进制数、二进制数。
)bcd (1) (2)解: 2b5h = 4cd.a5h =(1) 2b5h = 693d = 0010 1011 0101b(2) 0 0101 b4. 计算下列各式。
(1) a7h+b8h =(2) e4h-a6h =解:(1) a7h+b8h = 15fh(2) e4h-a6h = 3eh5. 写出下列十进制数的原码、反码和补码。
(1) +89(2) -37解:(1) [+89 ] 原码、反码和补码为 : 01011001b(2) [-37] 原码 = 10100101 b[-37] 反码 = 11011010 b[-37] 补码 = 11011011 b6.求下列用二进制补码表示的十进制数(1)(01001101 )补 =(2)(10110101 )补 =解:(1)(01001101 )补 = 77d(2)(10110101 )补 = -75d7.请用 8 位二进制数写出下列字符带奇校验的 ascii 码。
(1)c: 1000011 (2)o: 1001111(3)m: 1001101 (4)p: 1010000解:(1)c:0 1000011 (2)o: 0 1001111(3)m:1 1001101 (4)p: 1 10100008.请用 8 位二进制数写出下列字符带偶校验的 ascii 码。