合肥工业大学汇编程序设计实验报告完整代码 下载本文

mov cl,al imul bl mov dx,ax mov al,cl cbw add dx,ax mov al,bl cbw sub dx,ax

3. 实践C?Asm的转换过程。 #include int main() {

return 0; }

}

_asm mov ax,0088h; _asm {

ret

mov ah,4ch

quit:

int 21h

code ends end start

四. 实验结果(包括必要的截图)

1、BL中的只有一位为1。编写程序测试,并输出提示信息“The X Bit is 1”,要求:地址表和转移表。

2. 编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。要求通过堆栈(寄存器、内存)传送所有参数。 使用堆栈: dx及0002中为f(3,-1)=1

二、使用寄存器传值 dx及0002中为f(3,-1)=1

3. 实践C?Asm的转换过程。

TITLE D:\\c++ documents\\huibian.cpp .386P

include listing.inc if @Version gt 510 .model FLAT else

_TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS

_DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _DATA ENDS

CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS

_BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS

$$SYMBOLS $$SYMBOLS

SEGMENT BYTE USE32 'DEBSYM' ENDS

$$TYPES SEGMENT BYTE USE32 'DEBTYP' $$TYPES ENDS

_TLS SEGMENT DWORD USE32 PUBLIC 'TLS' _TLS ENDS ;

COMDAT _main

_TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS

FLAT GROUP _DATA, CONST, _BSS

ASSUME CS: FLAT, DS: FLAT, SS: FLAT

endif PUBLIC

_main

EXTRN __chkesp:NEAR ;

COMDAT _main

_TEXT SEGMENT _main PROC NEAR

; 3 : {

push mov

ebp ebp, esp

; 00000040H

; COMDAT

sub esp, 64 push push push

ebx esi edi

lea edi, DWORD PTR [ebp-64] mov mov

ecx, 16

; 00000010H

; ccccccccH

eax, -858993460

rep stosd