软件的基本操作:
mount c d:\masm
C:
dir
启动:debug 退出:q
20位 寄存器16位
1、物理地址 = 段地址*16 + 偏移地址
2、AL =AL +BL 如果溢出不可进位
3、寄存器16位,寻址范围为64KB,所以偏移地址寻址范围最大为64KB
4、段寄存器
CS----代码段 DS---数据段 SS---栈段 ES附加段
5、Debug是什么:
(1)Debug是DOS系统中的著名的调试程序,也可以运行在windows系统实模式下
(2)使用Debug程序,可以查看CPU各种寄存器中的内容、内存的情况,并且在机器指令集跟踪程序的运行
6、Debug能做什么
(1)用R命令查看、改变CPU寄存器的内容 r r ax +回车
(2)用D命令查看内存中的值 d d 2000:0000 d 2000:0 f d 2000:0 2f
(3)用E命令改变内存中的值 e 2000:0000 11 22 33
(4)用U命令将内存中的机器指令翻译成汇编指令 u 2000:0
(5)用A命令以汇编指令的格式在内存中写入机器指令 CS:IP a 073f:0100 +回车+汇编程序 mov ax,bx
(6)用T命令执行机器指令 t 执行CS:IP指向的汇编程序 rip
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41962968/article/details/127311323
7、 masm p4.asm
8、link p4
9、p4
10、 debug p4.exe //可以观察指令的执行
11、
s: add ax,ax
loop s //偏移地址
12、cx 一般用作存放循环次数
13、mov ax,[bx +idata]==>mov ax,[bx+200]//段寄存器是DS ,bx又称为基址寄存器 mov ax,200[bx]//mov ax,[bx].200
14、DI和SI相当于BX 是目的、源变址寄存器 mov ax,[bx +si]//mov ax,[bx]+[si]
15、mov ax,[bp]//基址寄存器相当于bx
16、bx默认是ds段,bp默认是ss段
17、jump cs:ip
18、and ax,00000001 or ax,00000001
19、mov word/byte ptr ds:[0] 1
20、div 10H //8位:被除数 ax 余数 AH 商AL 16位:DX*10000H +AX 余数DX 商AX
21、dup db 0 0 0 == dup 3 (0)
22、jmp 0A 会跳转到ip为0A的地方执行程序,但是我现在的ip是 03,机器码是EB05,因为下条指令是05,再加上偏移的05刚好是0A
23、jmp s / jmp ax
24、jmp short cs:[0] 段内短转移-128-127 jmp near ptr cs:[0]段内近转移 -32768- 32767 jmp far ptr cs:[0]
25、jmp word ptr [bx] 段内转移 jmp dword ptr [bx] bx存放ip bx+2存放cs 段间转移
26、jcxz s cx==0时跳转到标号s
27、call s push +jump调用子函数 ret pop =-->ip函数返回
mov ax,0
call s
mov ax,4c00h
int 21h
s:add ax,1
ret
25、mul bl 8位,被乘数在al ,结果在ax 16位,被乘数在 ax,结果在 dx(高位),ax(低位)
26、cmp ax,bx #两个数比较,影响标志寄存器,然后根据条件转移指令跳转
je s
add ax,ax
s:add ax,bx
27、 jmp/loop/call + 标号
dos模拟器操作及记录
最新推荐文章于 2024-09-29 18:14:37 发布