汇编语言实验一报告怎么写( 三 )


* F[地址范围] [字节或字节串] 填写命令 功能: 将要填写的字节或字节串填入由地址范围指定的存储器中 。例:-f100 120 61 62 63 64 -d100 11f 08F1:0100 61 62 63 64 61 62 63 64 -61 62 63 64 61 62 63 abcd abcd abcd abcd 08F1:0110 13 67 98 E3 C8 2E B3 B6 -03 21 AC 19 3121 4E 96 g……1… 如果数据行超出指定的范围,则填不下的数值会被忽略 。
例:-f 100 107 41 43 43 44 45 46 47 48 49 4A 4B 4C 4D -d 100,lof 08F1:0100 41 42 43 44 45 46 47 64 -61 62 63 64 ABCDEFGdabcdabcd 由上例可看出,超出范围的数据被忽略 另外,F和E命令都可填入字符串: 如:-F 100 105 "MSDOS" -d 100 l0f 08F1:0100 4D 53 44 4F 53 46 47 64 -61 62 63 64 MS DOS FGabcd abcd* G[=起始地址] [[断点]……] 执行命令 功能: 执行正在调试的程序,当达到断点时停止执行, 并且显示寄存器标志和下一条要执行的命令 。说明: 如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行 。
如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点 。例:A:\>debug tan.exe -u:反编译成汇编语言程码 ………… . . -g 100 指定中断点 Program terminated normally: 另外:我们在DEBUG下可运行一个文件.EXE 如:A:\>debug tan.exe -g 即可开始运行此程序,和在DOS下完全一样: * H[数值][数值] 十六进制算术运算命令 功能: 分别显示两个十六进制数相加的和以及第一个数减去第二个数的差 。
说明: 替用户完成简单的十六进制数的运算 。例:-h4538 5623 9B5B EF15* I[端口地址] 功能: 从指定的端口输入并显示(用十六进制)的一个字节 。
例:-i70 F9;显示70端口的内容为F9 I命令可由80X86的64K个端口取数据* L[地址][盘号:][逻辑扇区号][扇区数] 功能: 将一个文件或盘的绝对扇区装入存储器 。说明: 单个L命令能够装入的最大扇区数是 80H,其 。
3.谁能帮我写一个实验心得啊``套话就行`谢谢了`参考啊,记得接纳答案啊 。
9.高分悬赏.model small .386 .stack 100h .data oper1 dd 0h oper0 dd 0h n dw 0ahdisply macro ;定义宏 mov eax , ebx mov edx , 0h div ecx mov ebx , edx mov dl , al endm ;*************************** .code ;---------------------------- main proc far start: push ds xor ax , ax mov ax , @data mov ds , axhere: ;标识返回,用于循环输入 mov esi , 2h ;输入两位数 xor ebx , ebx xor eax , eax mov ebx , 0hrotate:mov eax , ebx ;此处用BL可能导致ah位不为零 mul n mov bx , ax mov ah , 01h int 21h sub al , 30h ;字符转换为数字,减去30h cmp al , 0ah jg exit ;输入字母则退出主程序 add ebx , eax dec esi cmp esi , 0 jnz rotate mov dl , ' ' mov ah , 02 int 21h and ebx , 000000ffh mov ecx , ebx xor edx , edx xor eax , eax call fibo ;递归调用mov ebx , edx xor eax , eax mov si , 8 mov oper0 , 0ah mov ecx , 10000000doutp: disply ;print the contents of DL on the screen add dl , 30h mov ah , 02h int 21h mov edx , 0 mov eax , ecx div oper0 mov ecx , eax dec si cmp si , 0 jg outp mov dl , ' ' mov ah , 02 int 21h jmp hereexit: mov ah , 004ch int 21h main endp;--------------------------;**************************fibo proc near ;菲薄拉起子程序 cmp ecx , 0h jz sp0 cmp ecx , 1h jz sp1 dec ecx call fibo ;递归调用 jmp largesp0: mov oper0 , 0h ;特殊处理 mov oper1 , 1h mov eax , 0h mov edx , 1 jmp quitsp1:mov oper0 , 1 ;特殊处理 mov oper1 , 1 mov eax , 0 mov edx , 1 jmp quit large:mov eax , oper0 add eax , oper1 mov edx , eax mov eax , oper1 mov oper0 , eax mov oper1 , edx quit:ret ;返回fibo endp ;-----------------------end start ;**********************以上是第一个程序datarea segment head dw 1020H,2002H,3033H,4440H,5008H,6008h,7008h,8008h,9008h,0a00h,0b00h,0c00h,0d00h,0e00h,0f00h,0000h tal dw 00ffh,0ff00h,55aah,0aa55hdatarea ends;*******************************progman segment ;-------------------------------main proc far assume cs:progman , ds:datarea full equ 32dstart: ;starting part of progman push ds sub ax , ax push ax mov ax , datarea mov ds , ax;main part of the progman goes here mov si , 8 mov cx , 4 mov di , 0;--------------------------;用BX 保存前一个要后移的数据,DX保存当前数据,AX保存END中数据;**************************************** mov bx , head[si] ;从第五个元素开始,格四个元素插一个rotate: mov bx , head[si] mov ax , tal[di] ;后移后,tal[di]将保持不变!!!!!!!!所以30-33行特殊处理 mov head[si] , ax cmp di ,6 jz last ;等于6则不前移,直接跳到last!! mov ax , tal[di+2] mov tal[di] , axlast:mov ax , si add ax , 10 ;SI跳过一个插入元素与四个原始数据 nextp:add si , 2 mov dx , head[si] mov head[si] , bx mov bx , dx mov bp , full add bp , di cmp si , bp ;【full+di】则元素6直接跳过了,不用ax则不能跟新最后几位元素 jng nextp add di , 2h mov si , ax dec cx cmp cx , 0 jg rotate ;------------------------------------------输出开始 ppp: xor si , siprint:mov ch , 4 mov bx , head[si] add si , 2rote: mov cl , 4 rol bx , cl mov al , bl and al , 0fh add al , 30h cmp al , 3ah jl outp add al , 7h outp: mov dl , al mov ah , 2 int 21h dec ch jnz rote mov dl , 'h' mov ah , 02h int 21h mov dl , 20h int 21h cmp si , 38 jng print mov ah , 4ch int 21h main endp;---------------progman ends;**********end startmov si , 0outp: mov ch , 4 mov bx , head[si] mov ah , 2 mov dl , 20h int 21h cycle:mov cl , 4 rol bx , cl mov al , bl and al , 0fh add al , 30h cmp al , 3ah jl printit add al , 7hprintit: mov dl , al mov ah , 02h int 21h dec ch jg cycle mov dl , 'h' mov ah , 2 int 21h add si , 2 cmp si , 40 jng outp ret以上是第二个华乐我很多时间啊,直接可以运行,希望对你有帮助 。