匯编语言程序设计(合工大版)习题参考.doc
文本预览下载声明
部分习题参考答案
1.5 下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?如果用16位二进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?
(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69)
85=55H,69=45H,-69=BBH,
8位二进制补码运算:
(1)85+69 =55H+45H=9AH, CF=0,OF=1
(2)85+(-69)=55H+BBH=110H,CF=1,OF=0
其余略
1.6 实模式下,写出段地址和偏移地址为1234:2002、1430:0042、FF00:0FFF的物理地址。
1234:2002=12340+2002=14342
1430:0042=14300+0042=14342
FF00:0FFF=FF000+0FFF=FFFFF
1.7 已知8086系统某存储单元物理地址为:52506H,你认为段基址的最大值、最小值分别是多少? 8086微机最多可以有多少个不同的段基址?
52506=5250:0006, 段基址的最大值=5250
52506=4251:FFF6, 段基址的最小值=4251
1.8 从物理地址为00100H开始到00103H单元中顺序存放的数据为:12H,34H,56H,78H。请画出数据存放示意图,并回答以下问题:
写出00101H字节单元的内容
(00101)= 34H
写出00102H字单元的内容
(00102)= 7856H
习题3
3.1 分别说明8086处理器中各寄存器的名称和作用是什么?
3.2 溢出标志OF与进位标志CF有何作用和区别?
3.3 何为段地址?何为有效地址? 何为物理地址?用指令举例说明。
3.4 带符号数比较大小,当AX BX时程序转向标号L1,若前导指令为CMP AX, BX
后续指令应为什么?若视为二个无符号数比较大小, 后续指令应为什么?
带符号数:JL L1, 无符号数:JB L1
3.5 ADD指令和ADC指令在什么情况下是一样的结果?
CF=0
3.6 说出CALL指令和INT 21H指令的操作,有何异同?
CALL把断点压入堆栈,不一定是远调,INT 21H还要把FLAGS压入堆栈,且是远调,总入口地址为84H内存中的两个字。
3.7 除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法?
RET指令,INT 20H
3.8 指出下列错误的指令,说出错误原因,并给出合适的修改。
(1) MOV AX,[DX] / MOV AX,[BX]
(2) MOV DS,DATA / MOV DS,BX
(3) MOV CS,AX / MOV ES,AX
(4) MOV AX,DL / MOV AL,DL
(5) PUSH AL / PUSH AX
(6) ADD [BX],[DI] / ADD [BX],DI
(7) LEA [BX],[2000H] / LEA BX,[2000H]
(8) MOV [BX],OFFSET [2000H]
(9) MOV [SI],2 / MOV BYTE PTR [SI],2
(10) MUL BX,CX / MUL BX
(11) DIV 5 / DIV BX
(12) MOV BYTE[SI],2 / MOV BYTE PTR [SI],2
(13) MOV AX,[SI+DI] / MOV AX,[BX+SI]
(14) SHR AX,4 / SHR AX,1
(15) CMP 6,AX / CMP AX,6
(16) MOV [FFFF],AX / MOV [FFFE],AX
(17) MOV AX,BX+4 / MOV AX,[BX+4]
(18) JMP FAR PRO / JMP FAR PTR PRO
3.9
显示全部