作者归档:xsscript

Python头部注释

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

在刚开始学习Python的时候遇到了上面的疑问,这些疑问感觉很奇怪,应为对于Nodejs这样的语言,这些问题是不会存在的,后来了解了一下关于这些疑问,觉得还是非常有用。

比如在Nodejs当中我用高版本新特性的Node写了一段程序,我只能在文件中说明这是使用什么版本的Node,但是如果用户无法注意到这个问题,很有可能他电脑里面使用的是低版本的Node,可能就会发生错误,而Python如果这样声明了过后就会解决掉这个问题。

默认脚本语言解释器

一般在python文件中第一行都有一个注释,上面指定了这个脚本语言需要用什么解释器来解释,Nodejs需要用Node解释器解释,perl需要用perl解释,python当然也需要用python脚本解释器来解释了。

继续阅读

HTML表格的加载优化

在HTML设计数据展示的时候会经常使用到HTML表格来展示数据,但是如果数据量过大,就导致表格显示慢,因为在HTML中,表格的显示是需要等待内部所有数据都加载完毕才会显示整个表格,这样对用户体验很不好,比如下面这样:

<table border="10px" width="500px">
            <caption>test</caption>
            <tr>
                <th>加载本地数据</th>
                <th>加载本地数据</th>
                <th>加载本地数据</th>
                <th>加载本地数据</th>
            </tr>
            <tr>
                <td>远程加载数据</td>
                <td>远程加载数据</td>
                <td>远程加载数据</td>
                <td>远程加载数据</td>
            </tr>
            <tr>
                <td>等待远程加载数据后计算数据</td>
                <td>等待远程加载数据后计算数据</td>
                <td>等待远程加载数据后计算数据</td>
                <td>等待远程加载数据后计算数据</td>
            </tr>
        </table>

在html中,有三种标记专门针对html表格进行优化结构化,而不虚要向上面的表格那样需要等待全部数据加载完毕后才能显示表格,而结构化的好处就是当表格加载完一部分就显示完一部分,这三个表示表格结构化的标签为:

继续阅读

汇编语言学习笔记(四):寄存器[内存访问]

内存中字的储存

在8086CPU中,寄存器为16位,可以储存一个字(1Word=2Byte),拿ax来说,低8位放在al中,高8位放在ah中。

在内存单元一个内存单元只能存储一个字节,那么如果存储一个字型数据就会用到两个内存单元,低8位放在低地址当中,高8位放在高地址当中,比如下图中,储存了两个字型数据,一个是4E20H,一个是0012H,它们的存放数据大概如下:

存放数据

而当连续两个内存单元储存的是一个字型数据的时候,可以将这字型数据的起始地址称为N地址字单元,比如00001内存单元和00002内存单元,可以直接称为00001地址字单元。

继续阅读

汇编语言学习笔记(三):初识Debug

什么是Debug?Debug是DOS、Windows提供的8086程序调试工具,可以查看CPU各种寄存器的内容,内存情况和机器码级跟踪程序的运行。

Debug一共有20多个命令,但我们在目前为止会使用到Debug的6个命令:

  1. R命令:查看、改变寄存器的内容
  2. D命令:查看内存中的内容
  3. E命令:改写内存中的内容
  4. U命令:将内存中的机器指令翻译成汇编指令
  5. T命令:执行一条机器指令
  6. A命令:以汇编指令的格式向内存中写入一条机器指令

Windows下的Debug

在Windows下自带提供了Debug,可以直接通过Window提供的DOS进入到Debug,可以通过开始命令,输入cmd然后进入到DOS界面后直接输入Debug后就进行Debug程序了。

Mac下的Debug

在Mac下,你需要通过Boxer这个程序来模拟DOS环境,打开后类似于这样的界面:

Boxer界面

点击Open a DOS prompt后就会弹出如下的界面,可以在这个环境下使用任何的DOS界面:

Boxer DOS界面

继续阅读

汇编语言学习笔记(二):寄存器

为什么要了解寄存器

为什么了解寄存器?因为CPU是计算机的大脑,可以通过指令读写寄存器实现对CPU的控制,你试想一下如果你的大脑不能控制只能控制手和脚等,不就等于扯线木偶了?

寄存器只是CPU内部的一个器件,对于汇编来说CPU中比较重要的三个器件:

  1. 运算器:对数据进行处理
  2. 控制器:控制各种器件工作
  3. 寄存器:对数据进行储存

而在CPU内部,这三个器件包括其他器件都是靠CPU内部总线相连,这里的内部总线是指的CPU内部器件的总线,而上一章节说的总线是CPU与外部器件比如显卡、内存等器件的总线。

8086CPU

每个CPU寄存器和结构都是不相同的,而王爽《汇编语言》第三版主要讲的是在8086CPU上面操作的汇编,所以我这个笔记(教程)也是跟着王爽《汇编语言》第三版这本书学习。

在8086CPU中有14个寄存器,并且每个寄存器都是16位(2Byte),每个寄存器的名字不一样,这些寄存器的名字分别为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。而关于这些寄存器的作用,需要用的时候再去理解,现在就当认识一下啦~

继续阅读