标签:区分 family err 鼠标 nta 内存 debug code div
8088/8086:
最小模式下信号总线由芯片内部直接引出
最小模式下 8086 的 低八位数据线 和 低八位地址线
位分时复用
控制线:
发送地址时,
会送出 ALE(地址锁存允许信号) 信号,
IO/(!M) 信号区分 端口 和 存储器,端口用于 键盘鼠标等外设等,
另外用于 内存(ROM+RAM+显存) 访问(磁盘,内存条,显卡)
高4位地址线 也为分时复用,分别表示 地址/状态
(!DEN) :Data Enable
(DT/R) :Data Transfer
(INTR) :Interrupt Receive
(INTA) :Interrupt Access
(NMI) :Non Maskable Interrupt
(HOLD) :Hold DMA
(HLDA) :Hlod DMA Access
最大模式下控制总线由8088和总线控制器8288共同构成
实验:
关于segment编译后站多少字节:
assume cs:code, ds:data, ss:stack data segment dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h data ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0 stack ends code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21 code ends end start
assume cs:code, ds:data, ss:stack data segment dw 0123h, 0456h data ends stack segment dw 0, 0 stack ends code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21 code ends end start
assume cs:code, ds:data, ss:stack code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21 code ends data segment dw 0123h, 0456h data ends stack segment dw 0, 0 stack ends end start
通过这个实验,再doxbox中debug 单步,发先 前两种 代码段大小 为 N 则 实际编译大小为 min(2^n >= N) 字节 ,而下面这种固定为48个字节
未完续待……
标签:区分 family err 鼠标 nta 内存 debug code div
原文地址:https://www.cnblogs.com/daker-code/p/12397742.html