几道汇编语言问题
1.求AL,CL分别为()
MOV AL,65H
MOV AH,0
MOV DL,10
DIV DL
MOV CL,4
SHL AL,CL
OR AL,AH
2.求AX为()
ORG 0000H
TABLE DW 12H,34H,56H,$+1018,78H,90H
COUNT EQU 3
LEA BX,TABLE
MOV DX,4[BX]
MOV AX,[BX+2*COUNT]
SUB AX,DX
3.解释每句话的含义
FACT PROC
PUSH DX
MOV DX,AX
CMP AX,0
JZ DONE
DEC AX
CALL FACT
MUL DX
POP DX
RET
DONE: MOV AX,1
POP DX
RET
FACT ENDP
4.下列属于段内间接寻址的是()
JMP WORD PTR [BX+ABC] JMP FAR PTR NEXT
JMP CX JMP SHORT NEXT
参考答案:1.求AL,CL分别为(a1h,4)
MOV AL,65H
MOV AH,0
MOV DL,10
DIV DL ;65h除以10,结果:al=10(商),ah=1(余数)
MOV CL,4 ;cl的值为4
SHL AL,CL ;把al逻辑左移4位,结果:al=a0h
OR AL,AH ;al的最低位变为1,结果:al=a1h
2.求AX为(938)
ORG 0000H
TABLE DW 12H,34H,56H,$+1018,78H,90H ;这里$的值为6
COUNT EQU 3
LEA BX,TABLE
MOV DX,4[BX] ;dx=56h
MOV AX,[BX+2*COUNT] ;ax=6+1018=1024
SUB AX,DX ;ax=938
3.解释每句话的含义
FACT PROC ;定义一个过程名为fact
PUSH DX ;dx入栈
MOV DX,AX ;把ax的内容送dx
CMP AX,0 ;ax与0比较
JZ DONE ;如果ax为0,则跳转到done执行
DEC AX ;ax的内容减1
CALL FACT ;调用fact过程
MUL DX ;(dx,ax)←(ax)*(dx)
POP DX ;dx出栈
RET ;返回
DONE: MOV AX,1 ;把立即数1送ax
POP DX ;dx出栈
RET ;返回
FACT ENDP ;过程结束
4.下列属于段内间接寻址的是(JMP WORD PTR [BX+ABC])
JMP WORD PTR [BX+ABC] JMP FAR PTR NEXT
JMP CX JMP SHORT NEXT