hhu微机原理与接口作业前四章.docx
- 文档编号:11336896
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:11
- 大小:18.58KB
hhu微机原理与接口作业前四章.docx
《hhu微机原理与接口作业前四章.docx》由会员分享,可在线阅读,更多相关《hhu微机原理与接口作业前四章.docx(11页珍藏版)》请在冰豆网上搜索。
hhu微机原理与接口作业前四章
第一章
1.5写出下列真值对应的原码和补码的形式。
(1)X=-1110011B
(2)X=-71D
(3)X=+1001001B
答:
(1)[X]原=11110011[X]补=10001101
(2)[X]原=110000111[X]补=101111001
(3)[X]原=01001001[X]补=10110111
1.7已知X和Y的真值,求[X+Y]补=?
(1)X=-1110111B,Y=+1011010B
(2)X=56,Y=-21
答:
(1)X+Y=-39D,[X+Y]补=1011001
(2)X+Y=35,[X+Y]补=0100011
1.8Y1=?
Y2=?
Y3=?
138译码器哪一个输出端会输出低电平?
答:
Y1=0,Y2=1,Y3=0,义译码器的Y2输出端会输出低电平。
第二章
2.3说明8088CPU中EU和BIU的主要功能。
在执行指令时,EU能直接访问存储器吗?
答:
EU的主要功能是:
执行指令、分析指令、暂存中间运算结果并保留结果的特征。
BIU负责CPU与存储器、I/O接口之间的信息传送。
EU不能直接访问内存,而是通过BIU,获取数据、送货出运算结果、从指令队列中取指令。
2.7在8086/8088CPU中,标志寄存器包含哪些标志位?
各位为0(为1)分别代表什么含义?
答:
CF:
进位标志位。
当进行加减运算时,若最高位向前有进借位,则CF=1,否则CF=0;
PF:
奇偶标志位。
当运算结果低8位中1的个数为偶数PF=1,为奇数时PF=0;
AF:
辅助进位标志位。
在加减法操作中,D3向D4有进位借位发生时,AF=1,否则AF=0;DAA和DAS指令测试这个标志位,以便在BCD加法或者减法之后调整AL中的值。
ZF:
零标志位。
当运算结果为0时ZF=1,否则ZF=0;
SF:
符号标志位。
当运算结果的最高位为1时,SF=1,否则SF=0;
OF:
溢出标志位。
当运算结果超出了带符号数的范围,即溢出时OF=1,否则OF=0;
TF:
陷阱标志位。
当TF=1时,激活处理器的调试特性,使CPU处于单步执行指令的工作方式,每执行一条指令后,自动产生一次单步中断,从而使用户能逐条指令地检查程序。
IF:
中断允许标志位。
IF=1使CPU可以相应可屏蔽中断请求。
当IF=0时,使CPU禁止响应可屏蔽中断请求。
IF的状态对不可屏蔽中断及内部中断没有影响。
DF:
方向标志位。
方向标志位在执行串操作指令时控制操作的方向。
DF=1时按减地址方式进行,即从高地址开始,每进行一次操作,指针地址自动减一或者减二;DF=0时则按增地址方式进行。
2.10在8088CPU中,物理地址和逻辑地址是指什么?
已知逻辑地址为1F00:
38A0H,如何计算出其对应的物理地址?
若已知物理地址,其逻辑地址唯一吗?
答:
物理地址:
物理内存的内存单元的20位称为物理地址。
逻辑地址:
段基地址和段内偏移地址称为逻辑地址。
逻辑地址的段基址左移四位,再加上偏移地址,即可得到20位物理地址,即2280AH。
逻辑地址不唯一。
第三章
3.2设DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,字符常数VAR为0050H。
请分别指出下列各指令源操作数的寻址方式,并计算除立即寻址外的其它寻址方式下源操作数的物理地址。
答:
(1)MOVAX,BX
寄存器寻址,物理地址为BX的物理地址
(2)MOVDL,80H
立即寻址
(3)MOVAX,VAR
直接寻址;物理地址为60050H
(4)MOVAX,VAR[BX][SI]
基址-变址-相对寻址;物理地址为608F0H
(5)MOVAL,’B’
立即寻址
(6)MOVDI,ES:
[BX]
寄存器间接寻址;物理地址为20800H
(7)MOVDX,[BP]
寄存器间接寻址;物理地址为16200H
(8)MOVBX,20H[BX]
寄存器相对寻址;物理地址为60820H
3.5设堆栈指针SP的初值为2300H,AX=50ABH,BX=1234H,执行指令PUSHAX后,SP=?
在执行指令PUSHBX及POPAX后,SP=?
AX=?
BX=?
答:
SP=22FEH;SP=22FEH,AX=1234H,BX=1234H
3.7已知AL=7BH,BL=38H,试问执行指令ADDAL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?
答:
AF=0,CF=0,OF=1,PF=1,SF=1,ZF=0
3.10按下列要求写出相应的指令或者程序段。
(1)写出两条使AX内容为0的指令。
XORAX,AX
ANDAX,0000H
(2)使BL寄存器中的高四位和低四位互换。
ROLBL,4
(3)屏蔽CX寄存器的D11、D7和D3位。
ANDCX,0F777H
(4)测试DX中的D0和D8位是否为1.
ANDDX,0101H
3.15试编写程序,统计BUFFER为起始地址的200个单元中0的个数。
DATASEGMENT
BUFFERDB200DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化
MOVCX,200;循环次数
AGAIN:
LEASI,BUFFER;取buffer偏移地址
MOVAL,[SI]
CMPAL,0
MOVBL,0;计数
JNENEXT;不是0则跳到下一个
INCBL;为0,计数+1
NEXT:
INCSI;取下一个单元
LOOPAGAIN;若CX不为0,继续循环
MOVAH,4CH;结束
INT21
CODEENDS
ENDSTART
第四章
4.1分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。
答:
DATADB11H,22H,33H,44H,55H,66H,77H,88H
DATADW2211H,4433H,6655H,8877H
DATADD44332211H,88776655H
4.5试编写程序,将buffer中的第一个8位二进制数的高4位和低4位分别转换为ASIIC码,并按位数高低顺序放在ANSWER开始的内存单元中。
答:
DATASEGMENT
BUFFERDB2DUP(?
)
ANSWERDB4DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化
MOVCX,2;计循环次数
LEADI,[ASWER];取结果存放目标地址
LEASI,[BUFFER];取数据源地址
MOVDL,[SI];将八位二进制数放入DL
ANDDL,01H;清空高四位,放入DL,得到低四位
MOVDH,[SI];将八位二进制数放入DH
ANDDH,10H;清空低四位
ROLDH,4;左移四位,得到二进制的高四位
XORAX,AX;AX清零
MOVAL,DH;将二进制的高四位放入AL待除
MOVBL,0AH;除数取10
AGAIN:
DIVBL
ADDAH,30H;将余数转化为ASCII
MOV[DI],AH;二进制的高四位转化为10进制的个位ASCII存到;ANSWER第一个单元(低四位同理)
INCDI;指向下一个单元
ANDAL,AL;查看商是否为0
JNZAGAIN;如果商不为零,则转化高四位转化为十进制的十位,
;存入ANSWER下一个单元(低四位同理)
MOVAL,DL;将二进制数的低四位放入AL待除
LOOPAGAIN;跳转
LEADI
MOVAL,[DI];取二进制高四位转化为10进制的个位
MOVAH,[DI+1];取二进制高四位转化为10进制的十位
XCHGAL,AH;交换
MOV[DI],AL;将十位放在ANSWER第一个单元
MOV[DI+1],AH;将个位放在ANSWER第二个单元
MOVAL,[DI+2];取二进制低四位转化为10进制的个位
MOVAH,[DI+3];取二进制低四位转化为10进制的十位
XCHGAL,AH;交换
MOV[DI+2],AL;将十位放在ANSWER第三个单元
MOV[DI+3],AH;将个位放在ANSWER第四个单元
MOVAH,4CH;返回DOS
INT21H
CODEENDS
ENDSTART
4.7执行下列指令后,AX寄存器中的内容是多少?
TABLEDW10,20,30,40,50
ENTRYDW3
...
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
答:
40
4.10试编写程序,比较AX、BX、CX中带符号数的大小,并将最大的数放在AX中。
答:
DATASEGMENT
NUMDB67H,27H,89H;需要比较的数据
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化
LEASI,NUM;取数据偏移地址
MOVAX,[SI];将第一个数据赋给AX
MOVBX,[SI+1];将第二个数据赋给BX
MOVCX,[SI+2];将第三个数据赋给CX
CMPAX,BX;比较AXBX
JLSMALLERB;如果AX比BX小,跳转
CMPC:
CMPAX,CX;比较AX和CX
JLSMALLERC;如果AX比CX小,跳转
JMPDONE;结束,AX最大
SMALLERB:
MOVAX,BX;将BX的值赋给AX
JMPCMPC;跳转至AX与CX比较
SMALLERC:
MOVAX,CX;将CX的值赋给AX
DONE:
MOVAH,4CH;结束
INT21H
CODEENDS
ENDSTART
4.16阅读下面的程序段,试说明它实现的功能。
DATASEGMENT
DATA1DB‘ABCDEFG’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
AAAA:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETDATA1
MOVCX,7
NEXT:
MOVAH,2
MOVAL,[BL]
XCHGAL,DL
INCBX
INT21H
LOOPNEXT
MOVAH,C4H
INT21H
CODEENDS
ENDAAAA
答:
将字符串‘ABCDEFG’顺序输出。
4.19编写计算斐波那契数列前20个值的程序。
斐波那契数列的定义如下:
F(0)=0,
F
(1)=1,
F(n)=F(n-1)+F(n-2),n>=2
答:
DATASEGMENT
BUFFERDB20DUP(?
);用于存放斐波那契数列
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化
MOVCX,18;除了第一第二个数,要循环18次
LEADI,BUFFER
XORAL,AL;清零
XORBL,BL
XORDL,DL
MOV[DI],AL;将第一个数放入buffer
INCDI;偏移地址加一
MOVBL,1;第二个数
MOV[DI],BL;将第二个数放入buffer
INCDI
AGAIN:
MOVAL,BL;第一个数和第二个数相加,得到第三个数
MOVDL,AL;将第三个数赋给DL
MOV[DI],DL;存入buffer
INCDI
XCHGAL,BL;将三个数和第二个数交换
LOOPAGAIN;循环
LEADX,BUFFER
MOVAH,9
INT21H
MOVAH,4CH;返回DOS
INT21H
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hhu 微机 原理 接口 作业 前四章