| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 786 人关注过本帖
标题:初学汇编 请大神们指教
只看楼主 加入收藏
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
初学汇编 请大神们指教
rt,初学汇编。用的是王爽老师编写的书
也才刚看到第六章
就目前遇到的一些程序做了个小结如下
assume cs:code,ds:data,ss:stack
data segment
    .
    .
data ends
stack segment
    .
    .
stack ends
code segment
start:
       .
       .
       mov ax,4c00h
       int 21h
code ends
end start
不知道大神们有什么补充的 好让我学习的基础更扎实
请不吝指教 多谢!!
搜索更多相关主题的帖子: 老师 
2011-03-29 20:51
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
good job~~

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-29 20:53
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
挺好的,整理成笔记,可以多看看论坛的置顶帖子,那里面好多前辈整理的知识,慢慢消化吧.

技术问题,请不要以短消息方式提问
2011-03-30 09:34
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:0 
关于栈的疑惑
如下代码:不是说出栈后,数还在栈中
那理论上最后的ax是不是有ax=1111h?
可实验结果却不是,为什么
assume cs:code,ss:stack

stack segment stack
    dw 0,0,0,0,0,0,0,0
stack ends
               
code segment
start:
    mov ax,1111h
    push ax
    pop ax
    sub sp,2
    pop ax
      
    mov ax,4c00h
    int 21h
code ends
end start
2011-04-01 12:21
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:8 
以下是引用shuimu10在2011-4-1 12:21:14的发言:

关于栈的疑惑
如下代码:不是说出栈后,数还在栈中
那理论上最后的ax是不是有ax=1111h?
可实验结果却不是,为什么
assume cs:code,ss:stack

stack segment stack
    dw 0,0,0,0,0,0,0,0
stack ends
               
code segment
start:
    mov ax,1111h
    push ax
    pop ax
    sub sp,2
    pop ax
      
    mov ax,4c00h
    int 21h
code ends
end start

pop指令并不会改变栈里的数据, 只是把sp指向的数据复制到目的寄存器中。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-01 12:46
橙色水晶
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2011-3-31
收藏
得分:2 
都是  好学的  呜呜  我也要看   呵呵 ~~~
2011-04-01 12:54
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:0 
回复 5楼 ansic
那最后ax的值应该是1111h才对  可我的运行结果是3302h  实在是不理解
2011-04-01 13:39
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:10 
1. mov ax,stack
   mov ss,ax
   mov sp,16         ;没见着这3句
2.-t会保存一些数据,把你的数据冲掉了,这个等学到中断就懂了
3.跑一跑这个程序
程序代码:
    .model
    .code
    main proc far
start:
    xor ax,ax
    push ds
    push ax
    mov ax,1111h
    push ax
    pop ax
    xchg ax,bx
    add sp,-2
    pop ax
    xor ax,bx
    jnz exit
    push cs
    pop ds
    lea dx,mess
    mov ah,9
    int 21h
exit:
    ret
    main endp
    mess db "hello world!$"
    end start
4.你的代码可以这么改下,DEBUG时候-g执行看ax的值
程序代码:
assume cs:code,ss:stack

stack segment stack
    dw 0,0,0,0,0,0,0,0
stack ends
              
code segment
start:
    mov ax,stack
    mov ss,ax
    mov sp,16
    mov ax,1111h
    push ax
    pop ax
    sub sp,2
    pop ax
    int 3
    mov ax,4c00h
    int 21h
code ends
end start


技术问题,请不要以短消息方式提问
2011-04-01 14:21
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
呵呵
都是从初学者过来的哈
继续努力
2011-04-03 16:12
快速回复:初学汇编 请大神们指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039223 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved