汇编网首页登录博客注册
bade90的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  我的一生充满明天.
  • 『姓名』:黄恩龙
  • 『性别』:男『发送消息
  • 个人说明:懒散,调皮,不负责任,是人贱,人恨的家伙。

    每天反悔,每天反省.每天思考
  • 详细信息『加为好友』
学习动态
好友圈

[2009-08-31 02:22] 高手成长的六个阶段

程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。

我认为,一个程序员的成长可分为如下六个阶段。

Ø         第一阶段

此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。

Ø         第二阶段

此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中...
阅读全文 | 评论次数(0) | 浏览次数(462) | 所属类型(心情杂谈)

[2009-05-09 11:48] 标志寄存器

1.标志寄存器具有什么样的功能?
(1)用来存储相关指令的某些执行结果;
(2)用来为CPU执行相关指令提供行为依据
(3)用来控制CPU的相关工作方式。
2.每个标志位的详细解释
ZF标志,零标志位。计算结果为0 则ZF = 1,否则为0
PF标志,奇偶标志位。计算结果的二进制数中1的个数是否为偶数,则PF = 1,否则为0
SF标志,符号标志位,如果计算结果也负,则SF = 1 
*就像数据和指令都是二进制信息
一个数据也可以是有符号数也可以是无符号数
判断一个计算是有符号计算,还是无符号计算的时候,看SF标志位就可以知道
CF标志,进位标志位,保存无符号运算中的进位...
阅读全文 | 评论次数(0) | 浏览次数(480) | 所属类型(心情杂谈)

[2009-05-09 11:25] 检测点11.1

检测点 11.1
写出下面每条指令执行后,ZF,PF,SF等标志位的值
sub al,al       ZF = ____ PF = ____ SF = ____
mov al,1        ZF = ____ PF = ____ SF = ____
push ax                ZF = ____ PF = ____ SF = ____
pop bx                ZF = ____ PF = ____ SF = ____
add al,bl        ZF = ____ PF = ____ SF = ____
add al,10        ZF = ____ PF = ____ SF = ____
mul al        ...
阅读全文 | 评论次数(1) | 浏览次数(585) | 所属类型(汇编作业)

[2009-05-08 20:53] 检测点3.2

(1)
MOV AX,1000H
MOV DS,AX
--------- mov ax,1000h  
--------- mov ss,ax
--------- mov sp,0010h
PUSH [0]
PUSH [2]
PUSH [4]
....
(2)
同样设置 SS和SP寄存器就可以...
阅读全文 | 评论次数(1) | 浏览次数(556) | 所属类型(汇编作业)

[2009-05-08 20:41] 检测点3.1

【2】
2662H
e626H
E626H
2662H
0C88H
3B54H
0
00E6H
0
26H
010CH
不想解释了,数学计算而已
【2】

mov ax,6622h
JMP 0FF0:0100   FF0 * 10H + 100 = 10000H  ←跳
MOV BX,AX                                  ↓
                                           ↓
MOV AX,2000H         (AX) = 2000H  ←← ←← ←←
MOV DS,AX...
阅读全文 | 评论次数(1) | 浏览次数(603) | 所属类型(汇编作业)

[2009-05-06 19:06] 检测点10.2

下面的程序执行后,AX中的数值为多少
内存地址   机器码     汇编指令
1000:0      b8 00 00   mov ax,0  执行后AX=0
1000:3      e8 01 00   call s    PUSH IP,JMP S
1000:6      40         inc ax    AX = AX +1
1000:7      58       S:pop ax    弹出数据到AX
答案:AX中的数值为6
这里其实重要的就是CALL 指令 
明白CALL指令的过程 这个问题就迎刃而解了
我详细的分析一下
CALL S指令
这里别忘了 ...
阅读全文 | 评论次数(1) | 浏览次数(559) | 所属类型(汇编作业)

[2009-05-06 18:44] 检测点10.1

补全程序,实现从内存1000:0000处开始执行指令
assume cs:code,
stack segment
db 16 dup (0)
stack ends
code segment
start:mov ax,stack     ;把栈段的段地址送入AX
      mov ss,ax        ;再把AX里的栈段送入SS寄存器
      mov sp,16        ;设置栈段的偏移地址
      mov ax,_____     ;这里应写段地址
      push ax          ;这里压入刚写的段地址
      mov ax,____...
阅读全文 | 评论次数(2) | 浏览次数(550) | 所属类型(汇编作业)

[2009-05-02 20:21] 检测点2.3

下面的3条指令执行后,CPU几次修改IP?
都是在什么时候?最后IP中的值是多少?
mov ax,bx    ip+2指向下一条指令,改变IP一次,执行指令
sub ax,ax   IP+2指向下一条指令,改变IP一次,执行指令
jmp ax   IP+2执行下一条指令,改变IP一次,执行指令后
又改变一次

一共改变四次

不明白的可以这么想

每一个指令都会改变IP
注意:是先改变IP然后再执行指令的
但是JMP是跳转指令,
跳转指令会改变IP
详细解释:
mov ax,bx
从CS:ip 指向的开始
mov ax,bx 送到指令缓冲器
IP + 指令...
阅读全文 | 评论次数(2) | 浏览次数(607) | 所属类型(汇编作业)

[2009-05-01 14:38] 模块调用示例

assume cs:code,ds:data,ss:stack

data segment

db 'welcome to masm!' ;16byte

data ends

stack segment
 db 128 dup (0)
stack ends

code segment

start:mov ax,data
       mov ds,ax
       mov bx,0
 
       mov dh,12 ;设置参数
       mov dl,30 ;设置参数

       call plus ;调用模块
       mov...
阅读全文 | 评论次数(1) | 浏览次数(492) | 所属类型(心情杂谈)

[2009-05-01 14:35] 算出显存偏移地址模块

字符串输出模块

调用方式
call Plus
参数dh 传递行数
参数dl  传递列数
注意:栈至少有点空间才可以,还有因为SI里保存着算出的偏移地址,所以不用保存SI寄存器
子程序
Plus:push ax
     push dx
     mov al,160
     mul dh
     mov si,ax
     mov al,2
     mul dl
     add si,ax
     pop dx
     pop ax
     ret...
阅读全文 | 评论次数(1) | 浏览次数(575) | 所属类型(心情杂谈)
『 查看更多文章 』