1.如何在Win10环境下使用Debug进行汇编调试
目前在win10系统中是没有debug.exe的,所以我们需要下载一个debug.exe用来使用,32位的也可以。
1.首先将下载好的debug.exe放在一个文件夹下,我是放在了D:\debug\debug.exe这里;
2.接着我们打开dosbox,并输入如下命令:
接下来输入D:\切换到D盘,输入如下命令:
至此,便可以在win10环境下正常运行debug程序了。
2.怎么用电脑的命令符窗口进行汇编程序?
详细步骤如下:将写好的汇编代码保存为1。
asm将1。asm复制到c盘下点开始(即左下标那个windows图标),找到运行,或(附件中的命令提示符)找到运行后,输入cmd 或 command进入后输入cd c:输入masm 1;(1后面有分号),然后回车输入link 1;然后回车cls清屏然后回车输入1。
exe,然后回车完成 如果你需要debug,步骤如下: 1 - 8步同上 9。 输入debug 1。
exe,然后回车10 完成 通过以上步骤你便可以通过命令符窗口进行汇编程序。 汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。 在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。 许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。
有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。 汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。
在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
3.用汇编语言编写一个程序快点啊,请教高手了,题目如下:
感楼主诚意,费了九牛二虎之力,方才完成。
不知能否满足要求。;本程序通过编译,运行正确CodeSegmentAssumeCS:Code,DS:_Lenequ18;用户名最大长度Pass_Lenequ8;密码最大长度;-------------------------------------;将用户名和密码定义为一个结构类型UserStruc;成绩单结构类型User_NamedbName_Lendup(?);用户名Name_Lenthdb?;用户名实际长度Pass_WorddbName_Lendup(?);密码Pass_Lenthdb?;密码实际长度UserEndS;-------------------------------------;功能:显示指定地址(Str_Addr)的字符串;入口:;Str_Addr=字符串地址(要求在数据段);用法:OutputStr_Addr;用法举例:_Addrleadx,Str_Addrmovah,9int21hEndM;-------------------------------------;功能:取光标位置;入口:无;出口:DH=行号,DL=列号,BXMOVAH,3INT10HMOVCursor_Row,DHMOVCursor_Col,_RowDB?Cursor_ColDB?GetCursorEndP;-------------------------------------;功能:置光标位置;入口:Cursor_Row=行坐标;Cursor_Col:列坐标),Cursor_RowMOVDL,Cursor_ColXORBX,BXMOVAH,;-------------------------------------;窗口上滚指定行数Roll_UpProcNearxorbh,bh;显示页号movah,8;读光标位置的字符和属性int10hmovbh,ah;上滚窗口空行属性movcx,100h;左上角坐标moval,5movdx,54fh;右下角坐标movah,6int10hretRoll_UpEndP;-------------------------------------;功能:输入指定位数的用户密码,实际输入的密码字符以“*”显示,并有回空纠错功能;入口:di=密码输入缓冲区地址;出口:AL=实际输入的密码字符数Input_,Pass_Len;密码最大长度@@Input:callGetCursor;取光标位置movah,7;从键盘接受一个字符int21hcmpal,CR;回车符?jz@@Calc_Chrs;是,结束密码输入,转去计算实际输入的密码字符数cmpal,KBBackjz@@KB_Back;若是回空键,重新输入stosb;保存输入的字符movdl,'*'movah,2int21hjmp@@KBBack@@KB_Back:decCursor_Colinccxdecdi@@KBBack:incCursor_ColcallSetCursor;置光标位置loop@@Input;接受下一个数字@@Calc_Chrs:movcx,dipopdisubcx,dicmpcl,[si。
Pass_Lenth]jnz@@Pass_Err;密码长度不等movcl,[si。Pass_Lenth]xorch,chpushsileasi,[si。
Pass_Word]cldrepzcmpsb;比较密码是否正确popsijcxz$ 4@@Pass_Err:clc;进位标志复位,表示密码不正确retstc;进位标志置位,表示密码正确retInput_PassWEndP;-------------------------------------Again__Again;提示:是否重新输入用户名movah,1;从键盘接受一个字符int21horal,20h;转换成小写,大小写不敏感cmpal,'y';重新输入?jnz$ 7;不callRoll_Up;窗口上滚指定行数stc;进位标志置位,表示重复前面的操作retcmpal,'n';不重新输入?jnzAgain_Input;不是,非有效字母,重新输入clc;进位标志复位,表示放弃前面的操作retAgain_InputEndP;-------------------------------------Usersequ5;用户数EvenUser__Userdb'Username:$'Prompt_Worddb'Password:$'Empty_Errordb7,CR,LF,CR,LF,'Usernameisempty。 $'Register_Nodb7,CR,LF,CR,LF,'Noregister。
$'Pass_Errordb7,CR,LF,CR,LF,'Passworderror!$'Welcomedb7,CR,LF,CR,LF,'WELCOME$',0Input_AgaindbCR,LF,CR,LF,'(y/n)?$'Start:pushcspopds;使数据段与代码段同段pushcspopes;使附加段与代码段同段OutputPrompt_User;提示输入用户名callGetCursor;取光标位置Input_Name:callSetCursor;置光标位置leadx,Buffer;数据缓冲区地址movah,0ah;键盘缓冲区输入int21hleasi,Buffer[1];实际输入的字符数地址lodsb;取实际输入的字符数testal,al;空串?jnzValid_Test;不是,检测输入的用户是否注册OutputEmpty_Error;提示用户名为空jmpInput_Name;重新输入用户名Valid_Test:movcx,Users;注册用户数leasi,User_Inform;注册用户信息地址Valid_Test0:cmpal,[si。 Name_Lenth];输入的用户名长度=用户名实际长度?jnzNext_One;不相等,与下一个注册用户名比较pushcxpushsileasi,[si。
User_Name]leadi,Buffer[2];实际输入的用户名地址movcl,alxorch,chcldrepzcmpsb;比较用户名是否已注册stc;进位标志置位,表示用户名已注册jcxz$ 3clc;进位标志复位,表示用户名未注册popsipopcxjcInput_Pass;用户名已注册,转去输入用户密码Next_One:addsi,typeUser;下一个注册用户信息地址loopValid_Test0OutputRegister_No;提示:非注册用户callAgain_Input;是否继续jcInput_Name;进位标志置位,转去重新输入用户名jmpExit_Proc;不重新输入用户名,结束程序Input_Pass:。
4.如何用机器语言来编程
编程最后一步生成exe文件(由编译器完成)就是把变好的程转化成机器语言让电脑来执行。
所以用机器语言编程本质上讲很简单,只要把每个步骤依次打出来好了,不同机器的机器语言不一样。不过现在cpu有标准的指令集
如0000 代表 加载(LOAD)
0000 代表暂存器 A
000000001000 代表位址为 16 的内存
0000 0001 0000000001000 就是把地址为16的内存存到暂存器A中
至于怎么让电脑执行的话就是编写一个二进制文件(exe文件就是一种二进制文件),有专门的二进制文件编辑器不过很少见,编的对就能执行了,再说用1和0虽然可行到根本不现实。光一个加法运算都能让人崩溃。具体我也不是很清楚
5.windows系统上如何运行mips程序
实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。
所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC
几乎可以移植到目前所有可用的计算机平台。(我的电脑上就还装有 DevKitPro,里面包含
转载请注明出处windows之家 » 如何用win10系统编译汇编程序