杂记--《汇编语音(第3版)+》



17-21-32-(35)(45)(58)59-(61)(75)95-(108)(127)132-(142)(146)159-(172)181-(185+)187-192-(195)-(199)-(206)242-(250)-(262)
-(269)(277)-(297)(305)(345)

review:
(32)

0-7H  RAM
8-9H  显存
a-fH  ROM

条件转移:jmp
栈:call ret
分段选址:int iret cmp loop

机器码--助记符--》汇编指令

8bit = 1byte
执行过程
汇编指令-->内存--》CPU

找地址+读or写+数据     ----  街上(找)(哪个房子)里的(人)

总线:地址+控制+数据

存储单元(n)---逻辑存储器(1)
存储器:AX BX CX DX  --MOVE AX BX

ax--16位运算    al、ah--8位运算--溢出不保留
注意位数运算必须一致  16*16  8*8 

一维角度思考选址   (学校--体育馆--图书馆)

物理地址(20位)=段地址(CS-16位)*16+偏移地址(IP-16位)   《--》 段地址2进制数据<<4 + 偏移地址

段寄存器:CS DS SS ES  --指令:JMP  cs:ip  or  JMP AX <-->JMP cs:cs
   栈:ss:sp
  8086CPU不支持数据直接收入段寄存器
  move bx,1000h
  move bs,bx
  move al,[0] / move [0],al


Debug命令:R(查看修改寄存器cs ip等) D(查看寄存器内容) E(写机器代码) A(写汇编代码) U T P (48p)

   mov ax,ax  2字节 ==  mov ax,0 3字节

-----------------
程序返回
    mov ax,4c00   --debug  T命令执行
    int 21H    --debug  P命令执行

编译  masm  x;
链接  link  x;

SA+10H:0  PSP

inc bx   == add bx,1    //bx  si di

mov cx,11     重复loop  -- cx: 11+1次累加     --debug G命令 跳转指令      P命令 进入下一跳指令
s: add ax,ax        
   loop s

asm文件原  []  与 debug执行 [] 有区别(124p)

可用单元? 0:200~0:2ff

-----------------
end  通知结束   指明程序入口
dw   数字数据
db   '字符串数据'
dd   '双字节'
db 3 dup(0)     ; db 0, 0, 0
db 3 dup(0,1,2)  ;db 0,1,2,0,1,2,0,1,2
start   指明运行入口

[bx+si]  [bx][si]
[bx+3] 3[bx] [bx].3  [bx].10h[si]

----------------
reg (寄存器):ax bx cx dx sp bp si di
 (ah al, bh bl, ch cl, dh dl)

 (173p)[bx bp si di]    ss:bp  ds:!dp
sreg(段寄存器):ds ss cs es

(224p)
flag--(0,2,4,6,7,8,9,10,11)
      zf  结果为0
      pf  是否为偶
      sf  是否为负
      cf  是否借位  -无符号
      of  是否溢出  -有符号
     (244p)
      df  si、di是否递增    movsb | movsw
                            cld | std
sf=1, of=0 ==>ah>bh
sf=1, of=1 ==>ah>bh
sf=0, of=1 ==>ah<bh
sf=0, of=0 ==>ah>=bh
 
mov word ptr(177p)
mov byte ptr

push  子操作
(245p)
pushf
popf

mul(211p)
mul reg
mul 内存单元

div(181p)
abc(231p)  +cf
sbb(233p)  -cf
cmp(234p)

jmp short 标号     EB**
jmp near ptr 标号 
jmp far ptr 标号   EB****
jmp 16位 reg
jmp word ptr 内存
jmp dword ptr 内存

(196p)
jcxz 标号   条件 cx==0

loop 标号   条件 cx==cx-1  cx 不等于 0

(237p)
je  zf=1
jne zf=0
jb  zf=1
jnb cf=1
ja  cf=0&&zf=0
jna cf=1||zf=1

(202p)
ret       IP
retf      CS IP
iret  (251p) 

(204p)
call 标号
call far ptr 标号
call 16位 reg
call word ptr 内存单元地址
call dword ptr 内存单元地址

B8000H~BFFFFH 彩色区 (200p)
  e  B890:0  ->42 02 43 02 44 02  ->绿色abc
     b807  --第二行
     b814  --第三行
     b828  --第四行

(210p)
标号:
    指令
    ret
(250p)
中断向量 0:0~0:03ff
    iret

         0:200~0:2ff(255p)

(272p)
int 10h
int 21h

(277)
端口  0~65535
    in    al|ax,数据|dx
    out   数据|dx,al|ax

逻辑移位
shl
shr     cl > 位移大于1


IF寄存器
sti,   IF = 1
cti,    IF = 0


314p

int 9 与 int 16h


int 13h

逻辑扇区号=(面号**0+磁道号)*18+扇区号-1

int() --取商

rem() --取余

面号=int(逻辑扇区号/1440)

磁道号=int(rem(逻辑扇区号/1440)/18)

扇区号=rem(rem(逻辑扇区号/1440)/18)+1




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值