汇编第一次试验

来源:互联网 发布:织梦cms邀请码 编辑:程序博客网 时间:2024/05/02 04:26

    最近正在做汇编实验,突然感觉其实汇编还是蛮有意思的。所以记录一下自己做第一次的总结。

   1.  mov  ah,01h

        int  21h

      (1)首先这是一条DOS系统功能调用,把01h赋值给ah,再调用程序入口:int 21h,那么就可以让用户输入字符!

            并且用户输入的字符保存在al里。

      (2)用户输入的是十进制数,但保存在系统里的是ASCII的十六进制数的数字,比如4就是34h,所以要加入:

             sub al, 30h

      (3)同时ptr只可用于存储器的数,不能用于寄存器的转换:

  A DW 0

 mov ah,0

  sub al, 30h

  mov A,ax

  mov cx, word ptr A

如果此处直接这样:

  mov cx, word ptr al

 

因为寄存器在CPU中位数早就已经定好了,而存储器中就可以变换自如些

(4)回车

   mov dl,0dh

   mov ah,2

   int 21h

在DOS中

mov ah,2 表示的是显示输出,而它需要调用参数 DL=输出字符

而把0dh赋值给dl就可以

(5)换行

    mov dl,0ah

   mov ah,2

   int 21h

同上

(6)汇编如果直接输入中文显示的是乱码!(并不支持中文!!)

 

 HeadSentence1 db "请输入您想显示感叹号的次数: "; 此处输入数据段代码

    HeadSentence2 db "(整数)$"


回车 \r 本义是光标重新回到本行开头,r的英文return,
换行 \n 本义是光标往下一行(不一定到下一行行首)





 mo
 movah, 01h
   int 21h


0 0