汇编网首页登录博客注册
ltoiii的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2020-05-18 14:29] win-x64下Asm环境搭建

一些老游戏只能运行在DOS下,不支持64位操作系统,DOSBox原本是为运行这些程序而开发的模拟DOS环境。正好debug这类DOS下的汇编开发程序也需要这样的环境。
DOSBox0.74-3-win32-installer.exe: https://n802.com/file/9195321-443893341

debug.exe: https://n802.com/file/9195321-443893714
MASM.EXE: https://n802.com/file/9195321-443893730
LINK.EXE: https://n802.com/file/919...
阅读全文 | 评论次数(0) | 浏览次数(509) | 所属类型(汇编知识)

[2012-11-23 12:39] 关于8086寄存器

一、简述
8086的数据总线位数是16位,即2字节(0000H~FFFFH);地址总线为20位,即00000H~FFFFFH。14个寄存器都是16位。所以通过寄存器来表达寻址时,需要使用逻辑地址,例如CS:IP来表示,移4位即可。

多个逻辑地址映射可为一个物理地址,例如FFFF:0001表示FFFF1H,FFFE:0011也表示FFFF1H。读书时就注意到若地址溢出呢?譬如FFFF:0001=100000表示什么呢?老师没有讲这是地址回绕,也没有讲8086如何处理。


二,关于寄存器

8086有14个16位寄存器:

4个通用寄存器:AX,BX,CX,DX

4个...
阅读全文 | 评论次数(0) | 浏览次数(495) | 所属类型(汇编知识)

[2012-11-04 14:50] 2nd第4章笔记

segment和ends是一对成对使用的伪指令,用来定义一个段(P78)。
伪指令end是一个汇编程序的结束标记(P78)。
汇编程序返回代码:
mov ax,4c00H
int 21H...
阅读全文 | 评论次数(0) | 浏览次数(339) | 所属类型(汇编知识)

[2012-11-02 08:37] 2nd第3章笔记

读取10000H(内存)单元的内容到ax
mov bx,1000H
mov ds,bx
mov ax,[0]

解读:
8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器,所以mov ds,1000H这条指令是非法的。只好用一个寄存器来进行中转,即先将1000H送入一个一般的寄存器,如bx,再将bx中的内容送入ds。以下2条语句完成上述功能:
mov bx,1000H
mov ds,bx

另外:
mov ax,[0]
这条语句中的[0]表示内存单元的偏移地址为0,但是,只有偏移地址是不能定位一个内存单元的,还需要有段地址,8086CPU自动取ds中的...
阅读全文 | 评论次数(0) | 浏览次数(210) | 所属类型(汇编知识)

[2010-06-17 17:23] 2nd第2章笔记

Debug命令概览P35

R:(Debug)命令查看、修改CPU寄存器的状态;P36

D:(Debug)命令查看内存中的数据;P38
d 1000:0 1f

E:(Debug)命令修改内存中的数据;P40

U:(Debug)命令查看内存中的数据(以汇编指令格式显示);P42
u 1000:0

T:(Debug)命令执行CS:IP指向的指令;P43

A:(Debug)命令以汇编指令格式向内存中写入数据;P44

jmp(汇编)命令:修改CS、IP寄存器;P32

P32:在8086CPU加电启动或复位后CS和IP被设置为CS=FFFFH,IP=00...
阅读全文 | 评论次数(0) | 浏览次数(314) | 所属类型(汇编知识)

[2010-05-26 16:32] 第6章笔记

dw = define word , 定义字型数据,数据间以逗号分开。P124
6.2
assume cs:code
code segment
  dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start:
    mov ax,20h
    mov ss,ax
    mov sp,10h
    mov ax,cs
    mov ds,ax
    mov bx,0h
    mov cx,8h
  s:mov ax,[bx]
    add bx,2h
    push ax
  loop s
...
阅读全文 | 评论次数(0) | 浏览次数(342) | 所属类型(汇编知识)

[2010-05-26 16:17] 第5章笔记

0:200~0:2FF(256个字节)的空间相对安全

循环:
...
mov cx,xx
s:
...
loop s

在程序加载时cx中保存的是程序的长度。

实验4
(1)(2)
  mov ax,20H
  mov ds,ax
  mov bx,0h
  mov cx,cH
s:mov [bx],bl
  inc bx
  loop s
  mov ax,4c00H
  int 21H
(3)
mov ax,cs
...
mov cx,?
确定mov ax,4c00H之前代码长度,用debug看?
程序刚启动时cx是代码长度,但仍然...
阅读全文 | 评论次数(0) | 浏览次数(364) | 所属类型(汇编知识)

[2010-03-20 17:27] CPU的寻址能力

8086CPU的地址总线宽度为20,可以定位2^20个内存单元,则8086CPU的寻址能力为1MB。同理80386以后的32位机的寻址能力为4GB;
1个内存单元可以存储8个二进制位,1个内存单元又称为1个字节。
2个字节称为1个字。
8086CPU的寄存器(如:ax,bx等)可以存储1个字(2个字节)内存单元。
内存寻址方式为:实际地址(十六进制) = 段地址×10 + 偏移地址
则0001:0000 = 0000:0010 都表示00000010这个内存单元。...
阅读全文 | 评论次数(0) | 浏览次数(361) | 所属类型(汇编知识)

[2009-11-05 10:40] 对“cpu如何识别指令的回答”

原贴http://topic.csdn.net/t/20041111/19/3544828.html
问:指令在存储器中是以0和1存放的,并且各指令不等长,那么我想知道的是cpu怎么知道多长的一个0、1组成的串组成一条指令啊?每条指令的首尾相接,怎么识别各条指条的始末啊? 

15 楼qinxi(希)回复于 2004-11-14 19:18:48 得分 4
经典奔腾有两个8kb(可扩充为12kb)的高速缓存   
  现在的cpu已经都是数据和指令分开存放的哈佛结构了   
  首先是常用指令固化,即把常用的指令,例如:mov,add,inc,dec,push,pop,jmp,ca...
阅读全文 | 评论次数(0) | 浏览次数(320) | 所属类型(汇编知识)
页码数(1):  1