汇编语言第六章
- 格式:ppt
- 大小:693.00 KB
- 文档页数:46
6.1 下面的程序段有错吗?若有,请指出错误。
CRAY PROCPUSH AXADD AX, BXRETENDP CRAY答:程序有错。
改正如下:CRAY PROCADD AX, BXRETCRAY ENDP ;CRAY是过程名,应放在ENDP的前面6.2 9BHF7H57H80HF0A0:00B0H先PUSH,SP-2再PUSH,SP-2POP, SP+26.2 题堆栈及SP内容的变化过程已知堆栈寄存器SS的内容是0F0A0H,堆栈指示器SP的内容是00B0H,先执行两条把8057H 和0F79BH分别入栈的PUSH指令,然后执行一条POP指令。
试画出示意图说明堆栈及SP 内容的变化过程。
答:变化过程如右图所示:6.3 分析下面的程序,画出堆栈最满时各单元的地址及内容。
;********************************************S_SEG SEGMENT AT 1000H ;定义堆栈段DW 200 DUP (?) ;200*2=190HTOS LABEL WORDS_SEG ENDS;********************************************C_SEG SEGMENT ;定义代码段ASSUME CS: C_SEG, SS: S_SEGSTART: MOV AX, S_SEG(FLAGS)(AX)T_ADDR0000(DS)1000:0184:0186:0188:018A:018C:018ESP:01866.3 题堆栈最满时各单元的地址及内容MOV SS, AXMOV SP, OFFSET TOSPUSH DSMOV AX, 0PUSH AX┇PUSH T_ADDRPUSH AXPUSHF┇POPFPOP AXPOP T_ADDRRET;-------------------------------------------------------------------------- C_SEG ENDS ;代码段结束;******************************************END START ;程序结束答:堆栈最满时各单元的地址及内容如右图所示:6.4 分析下面的程序,写出堆栈最满时各单元的地址及内容。
计算机组成与汇编语言笔记整理第6章:汇编语言●本章要点● 6.1 汇编语言语句● 6.1.1 汇编语言语句格式指令语句的格式:[标号:] 指令助记符[操作数[,操作数]] [;注释]伪指令语句的格式:[名字] 伪指令助记符[操作数[,操作数]] [;注释]● 6.1.2 伪指令运算符和操作数1.伪指令运算符(1)算术运算符算术运算包括:加(+)、减(-)、乘(*)、除(/)、模除(MOD)。
其中,模除(MOD)表示两整数相除后取余数。
例6.1 已知符号常量NUM=51,求下列指令的汇编结果(表达式的值):MOV AX,NUM/9MOV AX,NUM MOD 9MOV AX,NUM*5汇编的结果是:MOV AX,5MOV AX,6MOV AX,255(2)逻辑运算符和移位运算符逻辑运算包括:逻辑乘(AND)、逻辑加(OR)、按位加(XOR)和逻辑非(NOT)。
逻辑运算是按位进行的。
移位运算包括:右移(SHR)和左移(SHL),表示将二进制常量右移或左移运算符右边所规定的位数,所空出的位均补0。
例6.2 求下列指令汇编的结果。
MOV AL,4CH SHL 2MOV AL,NOT 0FFHAND AL,4CH AND 0F0HXOR AL,4CH XOR 0FFH汇编的结果是:MOV AL,30HMOV AL,0AND AL,40HXOR AL,0B3H(3)关系运算符关系运算包括:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)和大于等于(GE)。
它们的运算结果是两个特殊的常量,若关系不成立,结果为0;否则结果为0FFH或0FFFFH。
例6.3 求下列指令汇编的结果。
MOV AL,4CH EQ 2MOV AL,4CH GT 1汇编的结果是:MOV AL,0MOV AL,0FFH(4)返回值运算符①取类型算符TYPE格式为:TYPE 变量或标号如果TYPE后面跟的是变量,则汇编程序将回送该变量类型的字节数:字节类型为l,字类型为2,双字类型为4,4字类型为8,10字节类型为10。