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
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
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
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

本文是关于16位DOS汇编的学习笔记,主要涉及AND、OR指令的使用,以及如何通过位操作将字母转换为大写。示例中展示了如何将AL寄存器的特定位进行置0或置1,并提供了将内存中字母转为大写的代码片段。此外,还提及了重复数据在汇编中的表示方法,如DB、DW和DD伪指令的用法。
最低0.47元/天 解锁文章
997

被折叠的 条评论
为什么被折叠?



