. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请问push能操纵立即数吗?  [待解决] 回复[ 7次 ]   点击[ 317次 ]  
helonsy
[帖 主]   [ 发表时间:2010-07-13 10:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
在第三章看到以下的内容:
mov ax,3123
push ax
mov ax,3366
push ax
看后于是我就有以下的疑问;
push能直接操纵立即数吗?
比如:
push 3123
push 3366
直接绕过ax做中间者。
masmaster
[第1楼]   [ 回复时间:2010-07-13 10:24 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
可以的, 但是pop不能是立即做和CS
abob
[第2楼]   [ 回复时间:2010-07-13 11:07 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
push 3123 
push 3366 
直接绕过ax做中间者。
-------------
有了想法,debug试试,计算机会告诉你答案。
lin1712
[第3楼]   [ 回复时间:2010-07-13 16:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
1楼,debug证明 是不可以的
lin1712
[第4楼]   [ 回复时间:2010-07-13 16:42 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-06-01 10:03
可以的, 但是pop不能是立即做和CS
------------------
回复:我曾经想偷懒,但debug不允许 push 立即数!
masmaster
[第5楼]   [ 回复时间:2010-07-13 17:24 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
我查了一下资料, 80186以上的cpu可以将立即数入栈。
helonsy
[第6楼]   [ 回复时间:2010-07-14 18:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-07-11 16:57
我试过了,不行,不知道五楼的说法是不是正确的。。。
masmaster
[第7楼]   [ 回复时间:2010-07-14 21:48 ]   [引用]   [回复]   [ top ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
我验证如下:
d:\MASM>cat a.asm
.186                ;需要指明用186指令集
assume  cs:code
code    segment
start:
        push 1234H  ;直接入栈
        pop ax      ;弹出至AX

        mov ah,4ch
        int 21h
code    ends
end     start

d:\MASM>debug a.exe    ;测试一下
-r
AX=0000  BX=0000  CX=0008  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14C9  IP=0000   NV UP EI PL NZ NA PO NC
14C9:0000 68            DB      68
-t

AX=0000  BX=0000  CX=0008  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14C9  IP=0003   NV UP EI PL NZ NA PO NC
14C9:0003 58            POP     AX
-t

AX=1234  BX=0000  CX=0008  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14C9  IP=0004   NV UP EI PL NZ NA PO NC
14C9:0004 B44C          MOV     AH,4C
-t

AX=4C34  BX=0000  CX=0008  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=14B9  ES=14B9  SS=14C9  CS=14C9  IP=0006   NV UP EI PL NZ NA PO NC
14C9:0006 CD21          INT     21
-p

Program terminated normally
-
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved