chacix / assembly Goto Github PK
View Code? Open in Web Editor NEWThis project forked from nekosilverfox/assembly
This project forked from nekosilverfox/assembly
╔═══╗───────────╔╗─╔╗ ║╔═╗║───────────║║─║║ ║║─║╠══╦══╦══╦╗╔╣╚═╣║╔╗─╔╗ ║╚═╝║══╣══╣║═╣╚╝║╔╗║║║║─║║ ║╔═╗╠══╠══║║═╣║║║╚╝║╚╣╚═╝║ ╚╝─╚╩══╩══╩══╩╩╩╩══╩═╩═╗╔╝ ─────────────────────╔═╝║ ─────────────────────╚══╝ In this folder, I recorded notes and codes for learning assembly language in the summer vacation of 2020. :P 注:部分代码及练习基于王爽《汇编语言》第三版,具体题目及要求请见书中 ----------------------------------------------------------------------------------------------------------------------- 文件夹编号说明: 其中,为了避免文件夹命名及编号混乱:【预留空位】指的是为以后复习或者相关新项目所预留出来的编号。 ============================= 1 - 2 基础 ============================= 3 - 17 基于loop指令的代码及练习 18 - 20 【预留空位】loop指令预留空位 ============================= 21 - 27 and和or指令 28 - 30 【预留空位】and和or指令 ============================= 31 - 32 byte ptr 字节型数据 和 word ptr 字型数据 33 - 35 【预留空位】 ============================= 36 - 40 div除法操作 41 - 45 div指令【预留空位】 ============================= 46 - 47 寻址方式在结构化数据访问中的应用 48 - 50 【预留空位】 ============================= 51 offset操作符 52 - 55 【预留空位】 ============================= 56 - 65 JMP指令 ============================= 66 jcxz条件转移指令 67 - 69 【预留空位】 ============================= 70 LOOP循环指令 71 - 74 【预留空位】 ============================= 74 - 77 向屏幕彩色输出【实验9】 78 - 80 【预留空位】 ============================= 82 - 83 ret、retf指令 84 - 85 【预留空位】 ============================= 86 - 90 几种call的简介 ============================= 91 - 98 call指令与ret的联合应用 99 - 100 【预留空位】 ============================= 101 - 102 mul乘法指令 ============================= 103 - 106 利用子程序的对字符串进行大小写转换 106 - 110【预留空位】 ============================= 111 - 117 设计一简化版(整理内存段中的数据、进行乘除法、将数值转化为对应的ASCII码) 118 - 119 【预留空位】 ============================= 120 - 126 初步显示字符串 127 - 129 【预留空位】 ============================= 130 - 132 adc指令 ============================= 136 sbb指令 ============================= 140 - 146 cmp条件判断指令 ============================= 150 - 151 rep movsb、cld/std实现数据正向/逆向传送 ============================= 160 以0结尾的字符串中小写字母转大写【综合运用】 ============================= 170 错误信息写入中断向量表【内中断】 ============================= 180 - 188 中断例程的运用 ============================= 199 使用加法和位移指令计算(ax)=(ax)x10 ============================= 200 - 202 端口的初步造作 ============================= 205 以“年-月-日 时;分;秒”的格式,显示当前时间 ============================= 220 - 224 键盘中断例程 ============================= 240 - 248 通过标号定位数据、直接定址表 ============================= 260 - 261 接受键盘输入 ============================= 编程小技巧: 将ds与si配合使用 将es与di配合使用 <--- 虽然es和si可以配合使用,但是介于后面涉及的课程及指令,不建议使用 ds:di,、es:si !! 在对程序分段时,如果遇到寄存器冲突,可以先将冲突的寄存器push到栈中,需要时再pop出来 如果合理的使用db, dw, dd ==> 看操作的寄存器,比如:操作的寄存器为16位,则应该用dw 如果参数过多,要处理的数据使用较多的寄存器,那么可以先将数据进行结构化处理再进行编写代码,这样可以更好的处理数据 将字符串显示在屏幕上(B800H)时,一定要注意将存放属性的高位字节写入数据,否则会造成无法显示 将字符串显示在屏幕上(B800H)时,先输出余数,在对ax中的商是否为零进行判断,否则会造成以零为结尾的数值无法显示 将int型数值转换为string字符串时,在进行除10取余时,每显示完一个字符,记得将储存高位字节的dx清零 在编写子程序时,可在程序开头处将程序中用到的寄存器进行push,在ret前再进行pop,这样就不用考虑是否会影响到程序外的寄存器(注意push和pop的顺序)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.