
汇编语言
Achilles.Wang
勿在浮沙筑高台
展开
-
ARMCM3汇编指令
16位数据操作指令 名字 功能 ADC 带进位加法(ADD with Carry) ADD 加法 AND 按位与。这里的按位与和C的”&”功能相同 ASR 算术右移(Arithmetic Shift Right) BIC 按位清零(把一个数跟另一个无符号数的反码按位与) CMN 负向比较(把一个数跟另一个数据的二进制补码相比较) CMP 比较(Compa原创 2018-01-15 10:08:43 · 707 阅读 · 0 评论 -
一文读懂除法溢出-使用汇编重定向0号中端(除法错误中断,比如,执行div指令产生的除法溢出)
在这里假设你已经有8086上的汇编经验 老规矩先贴出程序在一步一步的注释讲解;assume cs:codestart: mov ax,cs mov ds,ax mov si,offset do0 mov ax,0 mov es,ax mov di,200h mov cs,offset do原创 2018-01-07 22:08:57 · 1871 阅读 · 0 评论 -
CALL和RET指令
CALL和RET指令call和ret指令都是转移指令,它们都是修改IP,或同时修改CS和IP。它们经常被用来实现子程序的设计。 也就是常用来实现程序的加载和返回ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移; retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移; CPU执行ret指令相当于执行;pop IPCPU执行retf指令相当原创 2018-01-06 21:21:28 · 2822 阅读 · 1 评论 -
转移指令的原理
可以修改IP,或同时修改CS和IP对的指令统称为转移指令。概括的来讲,转移指令就是可以控制CPU执行内存中的某处代码的指令 8086CPU的转移行为有以下=几类。只修改IP的段内转移,比如:jmp ax同时修改CS和IP时,称为段间转移,比如:jmp 1000:0 由于转移指令对IP的修改范围不同,段内的转移又分为:短转移和近转移短转移的IP修改范围是-128~127近转移IP的修原创 2018-01-05 17:30:19 · 554 阅读 · 0 评论 -
汇编中数据处理的基本问题
在8086CPU中只有 bx、si、di、和bp可以使用[…]来进行寻址比如;mov ax,[bx]mov ax,[bx+si]mov ax,[bx+di]mov ax,[bp]mov ax,[bp+si]mov ax,[bp+di]都是正确的 但是下面的指令都是错误的:mov ax,[cx]mov ax,[ax]mov ax,[dx]mov ax,[ds]原创 2018-01-04 21:56:44 · 724 阅读 · 0 评论 -
汇编中的嵌套循环
先贴代码:assume cs:code,ds:datadata segment db 'ibm ' ;定义一个16个字节的字符串 db 'dec ' db 'dos ' db 'vax ' dw 0原创 2017-12-31 11:54:25 · 5460 阅读 · 0 评论 -
一文读懂汇编程序的多个分段的程序--详解
先贴上程序 首先要知道cpu是不知道到底哪里的数据是代码 那里是数据那里是堆栈因此实现这些要靠程序员来告诉CPU 当然还有小小的汇编程序:汇编中的嵌套循环assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmen原创 2017-12-29 11:20:37 · 4383 阅读 · 0 评论