8086指令

8086指令(20根地址线)

mov指令

;在mov指令中 当 目的操作数 为段寄存器时, 源操作数 只能为寄存器或者为内存地址

div和idiv指令

div 无符号 除法

;div byte [0x0023]
;第一类 16b / 8b
;被除数事先存放到ax寄存器中
;除数8位通用寄存器或者内存单元
;商存放到AL
;余数存放到AH
;-------------------------------------
;div word [0x0023]
;第二类 32b / 16b
;被除数高16b放在dx中,低16b放在ax中
;除数16b通用寄存器或者内存单元
;商放在ax中
;余数放到dx中

idiv 有符号 除法

movsb mobsw cld std rep指令

movsb : 传送字节为单位
movsw: 传送字为单位
cld : 设置方向位(DF)为0
std : 设置方向位(DF)为1
rep : CX 不为0 ,则重复

movsb 和 movsw 是段之间数据传送

data db 0,1,2,3

;为执行movsw  初始化一系列寄存器

mov ax,0x7c0   ;设置 原始串的段地址
mov ds,ax  

mov ax,0xb800  ;设置目的地址段地址
mov es,ax

mov si,data    ;设置 原始数据的 偏移地址
mov di,0       ;设置 目的偏移地址
cld            ;设置传送方向(正向)  std(反向)
mov cx,data/2 
rep movsw      ;执行完一次movsw后,cx减一,当cld时,正向传送,si,di加2  
               ;当CX为0则顺序执行,否则继续执行movsw

loop

;循环指令:loop
;1.CX 减一
;2.if(cx!=0) 跳转到指定位置执行 else 循序执行后面指令

寄存器

;8086中可以用寄存器来当偏移地址,只能使用BX,SI,DI,BP
;通用寄存器
;AX : 累加器 CX:计数器 DX:数据寄存器
;与外设进行数据传送寄存器
;SI : 源索引寄存器 DI:目的索引寄存器

neg

取反指令
neg ax
neg byte [bx]

cbw cwd

cbw 寄存器AL中有符号数扩展到整个AX
cwd 将寄存器AX中有符号数扩展到DX:AX

发布了12 篇原创文章 · 获赞 0 · 访问量 4428

猜你喜欢

转载自blog.csdn.net/weixin_43180758/article/details/98527783