第一次作业:
1.请写出-37的原码、反码和补码。请写出计算过程。
2. 8086 CPU 由哪两大部分组成?请分别叙述它们的功能。
3.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?
(1)MOV AX,[64H]
(2)MOV AX,[BP]
(3)MOV AL,[DI]
(4)MOV AL,[BX+1110H]
(5)MOV AX,NUM[BX][DI]
1.答:[-37] 原码 = 10100101 B
[-37] 反码 = 11011010 B
[-37] 补码 = 11011011 B
2.答:由指令部件EU和总线接口部件BIU组成。
EU功能:EU只负责执行指令。其中的算术逻辑单元(ALU)完成16位或8位的二进制运算,运算结果可通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。16位暂存器用来暂存参加运算的操作数。经ALU运算后的结果特征送入标志寄存器FR中保存;EU中的控制器负责从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。
BIU功能:总线接口单元BIU负责与存储器或I/O端口打交道,正常情况下,BIU通过地址加法器形成指令所在存储器中的物理地址后,启动存储器,从给定地址的存储器中取出指令代码送指令队列中等待执行,一旦指令队列中空出2个字节,BIU将自动进人读指令操作以填满指令队列。只要收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果的功能。
3.答:(1)MOV AX,[64H] 答:寻址方式为直接寻址;PA=60064H
(2)MOV AX,[BP] 答:寻址方式为寄存器间接寻址;PA=50400H
(3)MOV AL,[DI] 答:寻址方式为寄存器间接寻址;PA=61200H
(4)MOV AL,[BX+1110H] 答:寻址方式为寄存器相对寻址;PA=61410H
(5)MOV AX,NUM[BX][DI] 答:寻址方式为相对基址变址寻址;PA=61505H
第二次作业:
1.指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。
(1) PUSH 1234H (2) MOV CS,AX
(3) IN AX, 300 (4) MOV AX,[DX+12]
(5) MOV BX,[BX] (6) MOV DS,1000H
(7) XCHG AL,AL (8) MOV AL,100H
(9) MOV DX,AL (10)LEA BL,[BX+5]
2.假设AX=1234H,BX=5678H,SP=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。
PUSH AX ;AX=?,BX=?,SP=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=?
PUSH BX ;AX=?,BX=?,SP=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=?
POP AX ;AX=?,BX=?,SP=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=?
1.解:(1)非法,8086系统不允许PUSH指令的操作数为立即数;
(2)非法,MOV指令中CS不能作为目的操作数;
(3)非法,端口号大于0FFH;
(4)非法,DX不能出现在中括号[]内;
(5)合法;
(6)非法,不能把立即数赋给段寄存器;
(7)合法;
(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;
(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;
(10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;
2.解:AX=1234H,BX=5678H,SP=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H
AX=1234H,BX=5678H,SP=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H
AX=5678H,BX=5678H,SP=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H
第三次作业:
1. 编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行。
2.在8086系统下,编写实现如下功能的程序段:
(1)从地址为80H的端口中读入一个字节;
(2)如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序;
(3)如果该字节最高位为“0”,则转向第(1)步,继续循环扫描。
1.答:设字符串OLDS位于数据段,字符串NEWS位于扩展段,程序段如下:
LEA SI,OLDS ;取源串首址送SI
LEA DI,NEWS ;取目的串首址送DI
CLD ;增址比较
MOV CX,5 ;串长度为5
REPE CMPSB ;相等重复串比较
JNE NEW_LESS ;不相等转移
HLT ;暂停
2.解: 参考程序段:
AGAIN: IN AL, 80H
TEST AL, 80H
JZ AGAIN
MOV AL, 0FFH
OUT 81H, AL
第四次作业:
1.试叙述汇编语言源程序的上机过程。
答:分四步进行 ① 编辑、②汇编、③ 连接 ④ 调试。
编辑:用编辑程序(例如EDIT.COM)建立扩展名为.ASM的汇编语言源程序文件。
汇编:用汇编程序(例如MASM.EXE)将汇编语言源程序文件汇编成目标程序文件,其扩展名为.OBJ。如果在汇编过程中出现语法错误,根据错误信息提示(如错误位置、错误类型、错误说明),用编辑软件重新调入源程序文件进行修改,直至没有出现语法错误,再进行连接程序。
连接:用连接程序(例如LINK.EXE)把目标程序文件转化成可执行文件,其扩展名为.EXE。
调试:用调试程(例如 DEBUG.EXE)序对可执行文件进行调试,直到无错误为止。
此时的可执行文件在DOS命令下直接执行。
2.试编程实现将键盘输入的小写字母用大写字母显示出来。
(或改成:试编写程序,在当前屏幕显示“hello,tongling college!”,且光标换行。)
答:程序设计如下:
CLRF MACRO ;宏汇编命令,定义宏
MOV DL,0DH
MOV AH,02H
INT 21H ;回车,使光标回到起始位置
MOV DL,0AH
MOV AH,02H
INT 21H ;光标换行
ENDM ;宏定义结束
DATA SEGMENT
STRING DB 50,?,50 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,STRING
MOV AH,0AH
INT 21H
CLRF ;宏指令
MOV BL,STRING+1
MOV BH,0
LEA SI,STRING+2
ADD BX,SI
MOV BYTE PTR[BX],‘$’
NEXT:MOV DL,[SI]
CMP DL,‘a’
JB NEXT1
CMP DL,‘z’
JA NEXT1
SUB DL,20H
MOV [SI],DL
NEXT1:INC SI
DEC BL
JNZ NEXT
LEA DX,STRING+2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
本文档为【微机原理作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。