学习16位DOS汇编笔记

原创 2016年08月29日 21:01:14
ax       //是16位的寄存器,最大可以存65535
ah,al  //是8位的寄存器,最大可以存255

cs:ip  //指向程序下一条执行的指令
ds     //数据段寄存器
ss     //栈段寄存器
sp     //栈顶指针

物理地址=段地址*16(十进制)+偏移地址
物理地址=段地址*10(十六进制)+偏移地址
物理地址20030 段地址2000 偏移地址30

Debug的常用命令
r //查看和修改寄存器
d //查看内存
e //修改内存
u //反汇编
t //单步执行
a //写汇编指令
g //相当直接运行
p //执行完返回

jmp 2000:0030  //相当于mov cs,2000;mov ip,0030,但不能直接给段寄存器传数据

//计算2的n次方
2000:0000 mov ax,1
2000:0003 add ax,ax
2000:0005 jmp 2000:0003


//查看rom的刷写时间,但是无法修改
-d fff0:0000 ff


//ds段寄存器不能直接传递数据,可以通过寄存器来传递
mov bx,1000
mov ds,bx
mov al,[0]
mov [10],al

//压栈和出栈,一个栈的最大是0-ffffh,64KB
mov ax,1000H
mov ss,ax
mov sp,ffea
push ax  //sp减2
push bx  //sp减2
pop ax   //sp加2
pop bx   //sp加2

//
mov bx,0100h
mov ax,[bx] //将0100地址的数据传递给ax
mov [bx],ax //将ax的数据传递给bx指向的地址

mov ax,ds:[0]  //MASM32 汇编里的表示


//and指令

mov al,01100011b

and al, 00111011b  ;将操作对象的相应位设为0, 其他位不变

结果 00100011b


//or指令

mov al, 01100011b

or  al,   00111011b   ;将操作对象的相应位设为1,其他位不变

结果     01111011b


// bx=61h, 一个字母, 不管它原来是大写还是小写, 将它的二进制第5位置0,  肯定就是大写字母了, and al, 11011111h

mov al,[bx]

and al,dfh  ;转换成大小'A'   41H

mov [bx],al


mov al, [5+bx]    ; 指明一个内存单元

si和di寄存器和ax,bx类似, 只是不能拆分为两个8位寄存器

//各种寻址方式
[idata]
[bx]
[bx+idata]
[bx+si]
[bx+si+idata]
只有bx, si, di, bp这四个寄存器可以进行寻址


db 重复的次数 dup (重复的字节型数据)

dw 重复的次数 dup (重复的字型数据)

dd 重复的次数 dup (重复的双字型数据)


db 3 dup (0)

db 3 dup (0,1,2)

db 3 dup('abc', 'ABC')


dos和其他合法的程序一般不会使用0:200-0:2ff(00200-002ff)这256个字节的空间


待续......

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

汇编语言入门介绍

对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩...

汇编写的基于DOS窗口的记事本

好久没更blog了,微机原理要一个汇编大作业。经过两天的预习。写了一个记事本。其中有很多漏洞,不过勉强能用。环境:Masm for Windows 2012.5【64位】实现功能: 1、创建文件 ...

用js控制flash来实现全屏效果

说起来真是惭愧,学习flash都三四年了,

DOS16位汇编学习工具集合

  • 2014年11月07日 11:38
  • 15.88MB
  • 下载

汇编--学习笔记(四)-DOS功能调用

一、基本知识  DOS 功能调用是指汇编程序通过INT 21H软中断来调用DOS内部子程序完成特定的一系列操作的一种方法。  在学习和使用汇编语言过程中,用户不可能,也没有必要从最底层的第一个操作...

64位win7下安装16位汇编学习环境

  • 2016年02月17日 21:06
  • 1.77MB
  • 下载

STM8S003xx学习笔记(2):16位高级控制定时器(TIM1)

在单片机中定时器是一个非常重要的概念,这篇文章主要是对定时器TIM1做一个学习笔记。 1 综述 STM8S003xx只含有TIM1、TIM2、TIM4,其中TIM1是高级控制寄存器,TIM2和TIM4...

16位汇编第八讲----8086指令集(5)【控制转移类指令】

0x00 无条件跳转指令 JMP指令分为四种类型 (1)段内转移、直接寻址 (2)段内转移、间接寻址 (3)段间转移、直接寻址 (4)段间转移、间接寻址 直接寻址方式 转移地址就像立即数...

16位汇编第八讲----8086指令集(4)

0x00 串操作类指令 串寻址方式 1.源操作数用寄存器SI寻址,默认在数据段DS中,但允许段超越:DS:[SI] 2.目的操作数用寄存器DI寻址,默认在附加段ES中,不允许段超越:ES:[D...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习16位DOS汇编笔记
举报原因:
原因补充:

(最多只允许输入30个字)