dosbox汇编使用教程(怎么用dosbox编译,连接,执行汇编语言)
本文目录
- 怎么用dosbox编译,连接,执行汇编语言
- dosbox调用debug.exe怎么编译汇编程序
- 使用汇编语言输入输出时是所有的输出字符必须将送入什么
- dosbox到底怎么运行asm文件啊
- 求助: 怎么用dosbox运行汇编程序,其实也就是要怎么样进入C盘的masm5的文件目录下
怎么用dosbox编译,连接,执行汇编语言
如果是64位的操作系统:
以下是最简化的tasm的dos下的汇编编程环境,解压它,将tasm文件夹拖入dosbox的快捷图标中就可虚拟出dos的c驱动器(dos窗口),在其中执行菜单文件mm.exe可进行asm文件的、编译、链接、转com文件、运行等操作。mm.exe是一个极简易的ide。
dosbox调用debug.exe怎么编译汇编程序
呵呵,你是初学吧?debug只是调试工具,不是汇编工具,不能将a.asm汇编连接生成可执行程序。debug带有内置的汇编功能,但功能极弱,仅仅只能支持指令的汇编,不支持大多数常用伪指令的汇编。比如,它不支持变量名和语句标号的使用。它只能在进入debug后用a命令逐指令汇编。要将一个a.asm这样的汇编语言源程序汇编成可执行文件,你必须要另外使用汇编和连接程序。常用的汇编连接工具有两种,一种是MASM,另一种是TASM。MASM需要至少两个文件:masm.exe和link.exe 版本可以用5.0以上的。TASM需要tasm.exe和tlink.exe,还有一些辅助文件。版本可以用3.0或5.0 。建议使用TASM,它最大的优点是它配套的调试程序Turbo Debugger功能比debug强大很多、很多、很多倍,窗口界面,鼠标操作,等等……
使用汇编语言输入输出时是所有的输出字符必须将送入什么
1、输入输出字符串调用21号中断的0ah和09h号功能,可以实现字符串的输入输出输入字符串,调用0ah号功能需要注意的是,中断功能的调用大多是有一些约定的,基本上都是通过固定的寄存器传值拿21h中断的0ah中断来说,这个功能是实现输入字符串的,在此之前首先要提供一个变量存放输入的字符串,这个变量的定义方式是有要求的,如下:buffer db 50, ?, 50 dup(’$’)//db表示定义字节大小,第一个50表示想要定义一个50字节大小的变量(申请空间),?表示一个未定义的值,它会记录输入字符串的实际长度,//后面表示连续定义50个字节,用来存放输入的字符串的。至于为什么要定义为’$’,这是因为’$’是字符串约定的结尾符号,输出的时候检测到这个符号就代表一个字符串结束。//上面完成了定义一个变量(申请空间),用来存放输入的字符,下面还需要把这个变量的偏移地址给dx寄存器,才可以调用0ah号功能,段地址默认为ds就不需要改了lea dx, buffer ;送偏移地址mov ah,0ah ;将0ah放入ahint 21h ;输入字符串功能调用//下面介绍输出字符串功能,相对输入来说输出字符串要简单些/*同样要有一个变量,将变量的地址放入ds:dx,然后调用09h号功能8*/outputstr db ’hello world’,0dh,0ah,’$’//0dh,0ah分别是回车换行的ascii码,加到字符串后面表示换到下一行行首,’$’为结束标志lea dx outputstr ;送偏移地址mov ah, 09h ;将09h放入ahint 21h ;输出字符串功能调用登录后复制一个示例下面咱们在dosbox下实验下,代码如下功能是将输入的字符串在下一行输出stack segment stackstack endsdata segmentbuffer db 50, ?, 50 dup(’$’)next_row db 0dh,0ah,’$’data endscode segmentassume cs:code, ds:data, ss:stackstart: mov ax, datamov ds, axlea dx, buffer ;输入字符串mov ah, 0ahint 21hlea dx, next_row ;换行mov ah, 09hint 21hmov dx, offset ;输出字符串,注意起始地址mov ah, 09hint 21hmov ah, 4chint 21hcode endsend start登录后复制编译、连接、然后执行2、输入输出字符(数字)其实输入输出数字都是通过输入输出字符实现的,准确的说,我们在屏幕上输入输出的只是某个数字(0-9)的ASCII码值(对应30H-39H),而8086的21H号中断提供了输入输出字符的功能。21h号中断要配合ah使用,将功能号放在ah中,再通过int 21h调用2.1 输入输出字符1号功能,输入字符//1号功能,输入字符,输入字符的ascii码放在al中mov ah, 1int 21h//2号功能,输出字符,要输出的字符放在dl中mov dl 31h //31h,即1的ASCII码mov ah 2int 21h登录后复制2.2 输入输出数字其实输入输出数字本质上也就是输入输出字符(串),我们输入或输出的只是ASCII码值,要得到实际的数值,还要经过转换。除此之外,数据的大小(位数)也是受限制的,16位数二进制寄存器能保存的无符号数范围为0~65535,有符号数为-32768 ~ 32767,如果是用八位寄存器,可保存的数范围就更小了。这里都以有符号的16位为前提讨论一个比较完善的输入十进制数的处理流程如下:① 调用21号中断的1号功能输入一个字符② 判断输入字符的正负,负数,设置标记,正数继续下面步骤③ 判断输入是否合法(是否为0 - 9),或结束;若非法,提示重新输入,若结束,保存结果,否则继续下一步④ 将ASCII码值转为数值⑤ 将已经得到的内容乘以10,加上本次输入的数值⑥ 转①
dosbox到底怎么运行asm文件啊
DOSBOX是DOS软件的模拟器,并不能直接打开ASM文件的asm文件是汇编程序源文件,必须编译成EXE或COM的可以执行文件才有可能在DOS下运行DOSBOX的使用方式是MOUNT 模拟盘符:\路径 实际的盘符:\路径比如MOUNT C:\PAL D:\PAL即把实际位置在D:下的PAL目录下的文件定义为 C:盘下的 PAL不加目录就定义盘符所在的整个根目录
求助: 怎么用dosbox运行汇编程序,其实也就是要怎么样进入C盘的masm5的文件目录下
运行DOSXBOX之後Z:\ 》mount c c:\masm5 按下ENTER键入C:\ 按下ENTER(此时的DOSBOX中的C磁盘就是masm5的文件夹了)
更多文章:
flash游戏网站源码(高手进来,怎样下在网页中的FLASH源代码)
2024年7月17日 19:55
香港云服务器(香港有云服务器么是真正的云服务器 不是vps哦)
2024年7月19日 19:54
数组先定义在初始化(数组变量一般应该先定义后使用,当定义数组变量后,该数组各元素的初值是什么)
2024年7月2日 21:01
浮点运算对什么有影响(CPU浮点运算与整点运算分别决定其什么方面性能)
2024年10月8日 14:10
计算机应用基础教程答案(计算机应用基础课后习题答案(人民邮电出版社 杨起帆 颜晖编))
2024年7月8日 06:18
codeblocks下面的框不见了怎么办(codeblocks不出现黑框)
2024年7月23日 13:18