随笔分类 - assembly
8086等
摘要:最近打算把《老码识途》搞一遍,就先拿这个构造汇编语句开刀吧。 1.1.3 在c语言里嵌入汇编语句,构造mov和jmp的机器指令,从而让程序按自己指定的路径跑。 见代码: buildCode()就是在code处构造两句汇编指令,从而运行_lb1处代码,输出18。 反汇编查看code处: 代码构造成功。
阅读全文
摘要:看到一篇文章,是介绍nasm语法的:http://blog.csdn.net/hitop0609/article/details/4329454masm是微软专门为windows下汇编而写的,而nasm可以在windows、linux等系统下汇编,故而个人推荐使用nasm。3.1 nasm 是区分大...
阅读全文
摘要:目录:1.进制转换2.原码、反码、补码3.寄存器4.存储器的段结构5.堆栈6.传送类指令7.算术运算类指令(不含乘除)8.位操作类指令9.标志位操作指令10.标识符、常量与变量11.标号12.运算符13.伪指令14.源程序中段寄存器的装入以及DOS返回15.分支程序设计16.循环程序设计17.子程序...
阅读全文
摘要:1.从键盘输入两个相同长度的字符串,分别放到数据段和附加段,利用串比较指令比较数据段和附加段中两个字符串,如果两串一样,输出Y,否则输出N。这个程序调试了好久,之间遇到两个问题,其一是附加段的使用,需要对DS压栈对ES调整处理,即1 PUSH DS2 MOV AX,ES ...
阅读全文
摘要:数据块移动。将一个连续存储单元的数据移动到另一个连续的存储单元,并找出其中零的个数并显示出来。(注意在编程的时候要确保数据块位置的不确定性) 1 DATA SEGMENT 2 ORG $+20H 3 VA DB '2014001002003004' ;数据块 4 LEN...
阅读全文
摘要:程序里每一个结果都是通过累加求得,输出每一个算式,显示出来。程序中,BH存储被乘数,BL存储乘数,CX存储结果。 1 TITLE X99 2 DATA SEGMENT 3 VA DB ?,'*',?,'=',?,?,?,?,'$' 4 DATA ENDS 5 ...
阅读全文
摘要:求n的阶乘,键盘输入n,结果存储在AX中。 1 DATA SEGMENT 2 3 DATA ENDS 4 STACK1 SEGMENT STACK 5 DB 50H DUP(0) 6 STACK1 ENDS 7 CODE SEGMENT 8 ASSUME CS:CODE,DS:DA...
阅读全文