汇编语言实验报告_搭建开发环境
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言》实验报告
得分:
2、添加添加Irvine32.inc等所在的目录到include files中;
3. 将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin目录中
二、创建与配置project:
2.编辑教材85页不带输出的程序
代码如下:
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD DumpRegs PROTO
.data
Rval SDWORD ?
Xval SDWORD 26
Yval SDWORD 30
Zval SDWORD 40
.code
main PROC
mov al,+127
add al,1
mov al,-128
sub al,1
call DumpRegs
INVOKE ExitProcess,0
main ENDP
END main
结果:
3.输出各寄存器的值。
DumpRegs PROTO
程序最后加入调用DumpRegs过程的语句
call DumpRegs
输出结果如下:
4.单步执行的方式调试该程序,查看每步结果,并解释每步结果,并写成注释。(特别注意对标志位的影响)
1、按F10进行调试、alt+F5调出寄存器的变化信息框。
程序及标志位解读如下:
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
DumpRegs PROTO
.data
Rval SDWORD ?
Xval SDWORD 26
Yval SDWORD 30
Zval SDWORD 40
.code
main PROC
mov ax,1000h //ax 4096 ;bx 57344;
inc ax //ax 4097;bx 57344(实现自增)
dec ax////ax 4096;bx 57344(实现自减)
mov eax,Xval //把Xval复制给eax
neg eax //ax 26;bx 57344(取反令ax=-26)
mov ebx,Zvalv //ax 65510 ;bx 40 ;cx(把Zval的40赋给ebx)add eax,ebx // ax 14 ;bx 40 (求和eax=ebx+eax=14)mov Rval,eax//把eax复制给Rval
mov cx,1 //ax=14;bx=40;cx=1
sub cx,1
mov ax,0FFFFh
inc ax//ax 65535;bx=10;cx=0;
mov cx,0
sub cx,1
mov ax,7FFFh
add ax,2 //ax 32767 bx=40 cx =65535
mov al,0FFh//ax 32769
add al,1 //ax 33023
add al,1 //ax 32768
mov al,-128 //ax 32895
sub al,1 //ax 32896
call DumpRegs //ax 32895
INVOKE ExitProcess,0 //结束退出程序main ENDP
END main
. .. .
..w..