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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  像幻想的梦想,接近梦想的理想
  • 『姓名』:木头                
  • 『性别』:男    『发送消息
  • 个人说明:希望能成为一个程序员^_^
  • 详细信息『加为好友』
学习动态

[2008-09-20 21:13] 17.3字符的输入发现几个问题

17章那个字符串的输入显示删除这个程序,实在是太神奇了,让我兴奋很好几秒钟(几秒钟?是的,几秒钟!不能兴奋太久啊,万一兴奋过度我从1楼跳下去怎么办?)

我发现了几个我自己认为多余的语句,不知道大家是不是也早就发现了,还是说我错了?(不说废话了,进入正题)

;;;;;;;;;;;;;;;;;;;;第一处多余的地方;;;;;;;;;;;;;;;;;;;
在charpop这段代码中,代码如下:
charpop: cmp top,0
         je sret
         dec top
         mov bx,top
         mov al,[si][bx]
         jmp sret

我认为         
...
阅读全文 | 评论次数(1) | 浏览次数(628) | 所属类型(个人笔记)

[2008-09-18 19:52] 计算sin(x)

书上的程序,加了对角度值的检测.
哈,贴出来,留恋~^_^

;名字:计算sin(x)
;功能:计算sin(x),x∈{0°,30°,60°,90°,120°,150°,180°},并在屏幕中间显示计算结果
;参数:al中存放角度值

assume cs:code

code segment
        mov al,30
        call showsin
        mov ax,4c00h
        int 21h
        
showsin:        jmp short show
                        
                        table dw ag0,ag30,ag60,ag90,ag120,ag150,ag180
                        ag0 d...
阅读全文 | 评论次数(0) | 浏览次数(762) | 所属类型(个人笔记)

[2008-09-17 12:04] 关于无符号和有符号数的解释(转)

一、只有一个标准! 

在汇编语言层面,声明变量的时候,没有 signed  和  unsignde 之分,汇编器统统,将你输入的整数字面量当作有符号数处理成补码存入到 计算机中,只有这一个标准!汇编器不会区分有符号还是无符号然后用两个标准来处理,它统统当作有符号的!并且统统汇编成补码!也就是说,db -20 汇 编后为:EC ,而 db 236 汇编后也为 EC 。这里有一个小问题,思考深入的朋友会发现,db 是分配一个字节,那么一个字节能表示的有符号整 数范围是:-128 ~ +127 ,那么 db 236 超过了这一范围,怎么可以?是的,+236 的补码的确超出了一个字节的表示范围,...
阅读全文 | 评论次数(0) | 浏览次数(1056) | 所属类型(个人笔记)

[2008-09-10 23:53] 由13章引起的一个疑问(有关masm)

点击查看原图
我发现一个奇怪的现象,就是有关masm的.
在测试13.3(对int/iret和栈的深入理解)的第一个问题时(用7ch中断例程完成loop指令的功能).
里面有2个程序,一个是"在屏幕中间显示80个'!',另一个是7ch中断例程.(这些都是废话,呵呵~下面才是我的疑问)
这2个程序我分别命名为80和7ch


一:
我运行 cmd ,然后输入cd c:\masm 打开masm所在文件夹;
然后,输入 7ch.exe;
然后,输入 80.exe;
按理,应该在屏幕中间显示80个'!'才对,但是没有反应.

二:
我换个方法;
首先,仍然运行 cmd ,然后输入cd c...
阅读全文 | 评论次数(11) | 浏览次数(654) | 所属类型(个人笔记)

[2008-08-30 14:58] 笔记8—第八章

1.两个新的描述性符号:
   * reg:表示一个寄存器
   * sreg:表示一个段寄存器(s就是segment的缩写吧?)

2.学到这里,发现有2对死对头——si、di和bx、bp
   si和di不能写在一起,如[si+bi],是错的
   bx和bp不能写在一起,如[bx+bp],是错的

3.在[...]使用bp,如果指令中没有显性地给出段地址,段地址就默认在ss中;没有使用bp的话,就默认在ds中。

4.汇编语言中使用3个概念来表达数据的位置:
  *1.立即数(idata):直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中)。立即数在汇编指 ...
阅读全文 | 评论次数(0) | 浏览次数(492) | 所属类型(个人笔记)

[2008-08-27 18:01] 笔记7—第七章

1.有2个很有用的新指令——and指令和or指令
   *and指令:通过该指令可以将操作对象的相应位设为0(二进制),如:
        mov al,01100011B
        and al,00111011B
        执行后,al=00100011B
    想要哪一位变为0就把哪一位写成0.
   *or指令:通过该指令可以将操作对象的相应位设为1,和and指令相反,想要哪一位变为1就把哪一位写成0。

2.大小写转换的问题
  用二进制表示26个字母的大小写,可以发现,大小写字母只有第五位不一样,其他位都一样,大写字母第五位为0,小写字母第五位为1.

3.看这条指令:and al,1...
阅读全文 | 评论次数(4) | 浏览次数(550) | 所属类型(个人笔记)

[2008-08-26 12:00] 笔记6—第六章

1.程序取得所需空间的方法有两种:
  *1.在程序加载时为程序分配(这章学习的)
  *2.程序在执行过程中像系统申请

2.这章又有新指令——DW(define word)和 DB(define byte)
  DW:dw是用来定义字型数据的,也可以说它是用来开辟内存空间的
,开辟内存空间来干嘛呢?因为那段256字节的安全空间有时不够用,
所以用dw来开辟系统认为安全的空间(我的理解),在程序被加载如内
存时,dw定义的数据也就同时被加载入内存(即获得了存储空间)。
  DB:这个书上没有解释,突然就冒出来了,通过debug调试,我发现
db是用来定义字节数据的。
...
阅读全文 | 评论次数(0) | 浏览次数(470) | 所属类型(个人笔记)

[2008-08-24 18:14] 笔记5—第五章

1.要完整地描述一个内存单元,需要两种信息:
*1.内存单元的地址
*2.内存单元的长度(类型)

2.为了描述上的简洁,在以后的课程中,我们将使用一个描述性的符号 “()” 来表示一个寄存器或一个内存单元中的内容。(如果在编程能这么表示该多好,可是,不能)

3.一个新指令:inc  ,如 int bx  ,表示(bx)=(bx)+1

4.这章的重点来了——loop指令
CPU在执行loop指令时,要进行2步操作:
*1.(cx)=(cx)-1;
*2.判断cx中的值,不为零就可以循环,为零就不循环了。

loop指令通常用来实现循环功能(记住是通常,还有其他方法...
阅读全文 | 评论次数(3) | 浏览次数(582) | 所属类型(个人笔记)

[2008-08-23 21:47] 笔记3+4 第三、四章

**********************************************************************
第三章:
1.字单元:顾名思意,就是存放字的内存单元——存放一个字型数据的内存单元,由两个连续的的内存单元组成——既然是2个内存单元组成,那肯定就是16位咯~

2.三个兄弟——段寄存器CS、DS、SS
CS: 是用来存放指令的段地址,CPU将CS:IP所指向的内容当作指令来执行。它指向的一般是代码段(暂时是,不知道以后会不会有别的),所以我把它和代码段联系起来。

DS:我把它跟数据段联系起来,因为我们利用它来读取内存单元的数据,它通常(...
阅读全文 | 评论次数(0) | 浏览次数(509) | 所属类型(个人笔记)

[2008-08-22 14:45] 一些缩写原型

在论坛上看到的,收藏先~

寄存器 =Register 

80x86(Intel系列)CPU提供了几个通用寄存器。其中包含八个32位寄存器,如下所示,E’代表扩展(extended): 
EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP 

16位数据寄存器: 
AH & AL =AX   累加寄存器,常用于运算       助记 Accumulator 
BH & BL =BX   基址寄存器,常用于地址索引   助记 Base 
CH & CL =CX   计数寄存器,常用于计数       助记 Count 
DH & DL =DX   数据寄存器,...
阅读全文 | 评论次数(0) | 浏览次数(1021) | 所属类型(个人笔记)
页码数(2):  1  2