(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。
(2)1KB的存储器有个存储单元。存储单元的编号从0000到1023。
(3)1KB的存储器能够存储个8192bit,1024个Byte。
(4)1GB、1MB、1KB分别是2^30 , 2^20 , 2^10Byte。
(5)8080、808八、8028六、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。
(6)8080、808八、808六、8028六、80386的数据总线宽度分别为8根、8根、16根、16根、32根则它们一次能够传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。
(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。
(8)在存储器中,数据和程序以形式二进制存放。html
1.写出每条汇编指令执行后相关寄存器中的值。编程
指令 | 寄存器 |
---|---|
mov ax, 62627 | AX = F4A3H |
mov ah, 31H | AX = 31A3H |
mov al, 23H | AX = 3123H |
add ax, ax | AX = 6246H |
mov bx, 826CH | BX = 826CH |
mov cx, ax | CX = 6246H |
mov ax, bx | AX = 826CH |
add ax, bx | AX = 04D8H |
mov al, bh | AX = 0482H |
mov ah, bl | AX = 6C82H |
add ah, ah | AX = D882H |
add al, 6 | AX = D888H |
add al, al | AX = D810H |
mov ax, cx | AX = 6246H |
mov ax, 2 ;ax = 2 add ax, ax ;ax = 4 add ax, ax ;ax = 8 add ax, ax ;ax = 16
(1)给定段地址为0001H,仅经过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应知足的条件是:最小为1001H,最大为2000H。工具
下面的3条指令执行后,CPU几回修改IP?都是在何时?最后IP中的值是多少?学习
mov ax, bx sub ax, ax jmp ax
**共计4次修改IP的值:翻译
0000:0000 70 80 f0 30 EF 60 30 E2-00 80 80 12 66 20 22 60 0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值。debug
指令 | 寄存器 |
---|---|
mov ax, 1 | |
mov ds, ax | |
mov ax, [0000] | AX=2662H |
mov bx, [0001] | BX=E626H |
mov ax, bx | AX=E626H |
mov ax, [0000] | AX=2662H |
mov bx, [0002] | BX=D6E6H |
add ax, bx | AX=FD48H |
add ax, [0004] | AX=2C14H |
mov ax, 0 | AX=0000H |
mov al, [0002] | AX=00E6H |
mov bx, 0 | BX=0000H |
mov bl, [000C] | BX=0026H |
add al, bl | AX=000CH |
各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0;3d
什么是Debug:
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,能够查看CPU各类寄存器中的内容、内存的状况和在机器码级跟踪程序的运行。调试
Debug的命令:code
如何进入Debug:
如今经过其余的虚拟机方式,还原到窗口并不现实,至关麻烦,这里采用Dosbox模拟运行。htm
具体搭建可见,不是我写的。
关于dubug更详细的操做能够看原书,或者下载非整书,截取了debug部分的内容,提取码za88。
注意在debug中,全部的数字均为16进制表示,mov ax,1839后,ax就为1893
第一个小实验
第三个小实验
会发现内容没法更改图中红圈所示。
第四个小实验
e命令选的内存为显存内存,DOS界面被更改。