在DOS下如何进⾏汇编语⾔编程
汇编语⾔是⼀种与机器语⾔最接近的语⾔,有三部分组成,
a:汇编指令,机器码的助记符,有对应的机器码。给机器识别的;
b:伪指令,没有对应的机器码,由编译器执⾏,计算机并不执⾏,是为了更容易的理解代码,给编程⼈员看的。
c:其他符号:‘+’,‘-’,‘*’,‘/’ ,有编译器执⾏,没有对应的机器码。
虽说现在的编程语⾔多种多样,最简单的分为⾯向过程,和⾯向对象。可是⼀切语⾔都源于最初的汇编语⾔。
要在dos环境下进⾏汇编语⾔编程,要⽤到⼀个应⽤程masm,他可以使汇编语⾔在dos环境下运⾏,可是光有这个不⾏,还要进⾏系统环境变量的配置,⼤致以java的环境变量的配置相似,在汇编语⾔的执⾏结果,并不会在屏幕上显⽰运⾏后的程序结果。因为就要⽤到调试器debug,这样就可以在内存和cpu的寄存器中看到程序运⾏的结果,以及内部寄存器内容的变化。
在这⼉就⽤⼀个最简单的例⼦说明如何在dos下运⾏masm执⾏汇编程序,和如何⽤debug调试⼀个程序。
;loop2.asm
assume cs:code
code segment
mov ax,0fffh
mov dx,ax
mov bx,0 ;初始化ds:bx指向ffff:0
mov dx,0 ;初始化累加寄存器dx,(dx)=0
mov cx,12 ;循环累加计数器cx,(cx)=12,(cx)=12
s:mov al,[bx]
mov ah,0
add dx,ax ;间接向dx中加上((ds)*16+(bx))单元中的值
inc bx ;ds:bx指向下⼀个单元
loop s
mov ax,4c00h
int 21h
code ends
end
汇编指令有多少个现在masm下运⾏这个程序,先进⾏编译,⽣成.obj⽂件
⽣成.obj⽂件后,链接.obj⽂件,就可以⽣成可执⾏⽂件.exe
执⾏完exe⽂件就可以进⾏⽤debug进⾏调试了。
Dos下操作时需要⽤命令操作,在⽤debug调试时,
先输⼊R 命令,观察寄存器的的初始值,
U命令是进⾏反汇编,在反汇编的中就可以看到机器代码了;
D命令是观看内存的变化。
DS:00直接可以看寄存器中的内容,以及设置寄存器的值,
E,是⽤于编辑
A命令可以直接在dos环境下,输⼊汇编指令。
T是⽤于单步执⾏指令,可以⼀步步的看清内存中寄存器中值得变化。
在执⾏汇编指令的过程中,先把汇编指令翻译成机器代码,存储在内存中,这是在内存中存储的数据不能分清是数据地址还是指令,都仅仅是⼆进制代码。只⽤通过CPU的调⽤实现他们的价值,CPU和内存之间的通信只要是通过总线。先是CPU通过CS代码段寄存器,IP指令寄存器。CPU先通过CS和IP寄存器通过地址总线给内存送去地址,地址的计算⽅法是物理地址=段地址*16+偏移地址,然后送到内存到相应的地址,取出地址中的内容,通过数据总线送到CPU,然后对这个数据进⾏处理。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论