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

; 4 : ; 5 : _asm mov ax,0088h;

mov

ax, 136

; 6 : _asm ; 7 : {

; 8 : ; 9 : ; 10 : ; 11 : } ; 12 :

; 13 : return 0; xor eax, eax

; 14 : } pop edi pop esi pop ebx add esp, 64

cmp ebp, esp call __chkesp mov esp, ebp

pop ebp

ret 0

_main ENDP _TEXT ENDS

; 00000088H

; 00000040H

END

五. 实验体会

通过本次试验使我了解了如何使用地址表和转移表,以及怎样通过堆栈(寄存器、内存)传送所有参数调用子程序。最后实践了C?Asm的转换过程,使我对C和汇编有了更多的认识。

实验四 汇编语言高级编程专题

一. 实验目的

1、汇编语言宏程序设计;

2、 掌握中断服务子程序的编写。 3、 汇编语言与高级语言的混编。

二. 实验内容

1、编写一个宏,求三个数的最小数,原型为:MIN3 x,y,z,min 2、挂接1CH中断,正计时60秒后退出。要求屏幕显示0-59的秒数。 3、VC++中编写内联汇编,将字节数组的每个元素高低四位互换。 char dbyte[] = {0x34,0x45,0x56,0x67,0xaf};

三. 实验过程和程序

1、编写一个宏,求三个数的最小数,原型为:MIN3 x,y,z,min min macro x,y,z mov ax,x cmp ax,y

jl next ; jc 看的是cf 是当成无符号数比较的? mov ax,y next: cmp ax,z jl final mov ax,z final: nop endm

code segment assume cs:code start: min 4 -6 3 mov ax,4c00h int 21h code ends end start

2、挂接1CH中断,正计时60秒后退出。要求屏幕显示0-59的秒数。 ;addres equ 1ch data segment

pian dw ? duan dw ? string db 48 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax

begin: mov ax,351ch int 21h

mov pian,bx mov duan,es push ds

mov dx,offset myproc mov ax,seg myproc mov ds,ax mov ax,251ch int 21h pop ds mov cx,0 mov bx,0

next: cmp cx,1080; 60*18 jnz next

mov dx,pian mov ax,duan mov ds,ax mov ax,251ch int 21h mov ax,4c00h int 21h

myproc proc sti

inc cx inc bx cmp bx,18