单相电机为什么加电容:谁能用汇编帮我做一下“不同进位制数及编码相互转换”
来源:百度文库 编辑:神马品牌网 时间:2024/04/29 00:05:44
二楼的给个联系方法
qq之类的
有问题问你
我以前写的,里面都是以函数的形式出现的,因为我把它做成库了,你用的时候把数据和函数粘贴一下就可以了,
发上来格式可能有点变形,你自己整理一下:
.MODEL SMALL
.386
PUBLIC CONVER10
PUBLIC CONVER16
PUBLIC CONVER2
PUBLIC NUM10
PUBLIC NUM16
PUBLIC NUM02
;************************************* 数据段DG *****************************************
.DATA
NUM10 DB 11 DUP(?), '$';
NUM16 DB 8 DUP(?), '$';
NUM02 DB 32 DUP(?), '$';
;************************************* 代码段CG *****************************************
.CODE
;用于将EAX中数值转换成10进制数
CONVER10 PROC NEAR
PUSHF;
PUSHAD;
LEA SI, NUM10; 装入NUM10地址, 准备转换
CMP EAX, 0;
JNZ EAX_NOT_0;
MOV DL, '0'; 处理EAX是0的情况
MOV [SI], DL;
INC SI;
JMP CONVER_END_10;
EAX_NOT_0: MOV EBX, 10D;
XOR CL, CL;
DIV10: CMP EAX, 0;
JZ CONVER_END_10;
XOR EDX, EDX;
DIV EBX;
ADD DL, 30H;
MOV [SI], DL;
INC SI;
INC CL;
JMP DIV10;
CONVER_END_10: MOV DL, '$';
MOV [SI], DL;
CMP CL, 1;
JBE END10;
SHR CL, 1;
XOR CH, CH;
DEC SI;
LEA BX, NUM10;
REVER10: MOV AL, [BX];
XCHG [SI], AL;
MOV [BX], AL;
INC BX;
DEC SI;
LOOP REVER10;
END10: POPAD;
POPF;
RET;
CONVER10 ENDP
;用于将EAX中数值转换成16进制数
CONVER16 PROC NEAR
PUSHF;
PUSHAD;
LEA SI, NUM16;
CMP EAX, 0;
JNZ EAX_NOT_0_16;
MOV DL, '0'; 处理EAX是0的情况
MOV [SI], DL;
INC SI;
JMP CONVER_END_16;
EAX_NOT_0_16: MOV EBX, 10H;
XOR CL, CL;
DIV16: CMP EAX, 0;
JZ CONVER_END_16;
XOR EDX, EDX;
DIV EBX;
CMP DL, 9H;
JA CHECKL;
CHECKN: ADD DL, 30H;
JMP ADDC;
CHECKL: ADD DL, 37H;
ADDC: MOV [SI], DL;
INC SI;
INC CL;
JMP DIV16;
CONVER_END_16: MOV DL, '$';
MOV [SI], DL;
CMP CL, 1;
JBE END16;
SHR CL, 1;
XOR CH, CH;
DEC SI;
LEA BX, NUM16;
REVER16: MOV AL, [BX];
XCHG [SI], AL;
MOV [BX], AL;
INC BX;
DEC SI;
LOOP REVER16;
END16: POPAD;
POPF;
RET;
CONVER16 ENDP
;用于将EAX中数值转换成2进制数
CONVER2 PROC NEAR
PUSHF;
PUSHAD;
LEA SI, NUM02;
CMP EAX, 0;
JNZ EAX_NOT_0_2;
MOV DL, '0'; 处理EAX是0的情况
MOV [SI], DL;
INC SI;
JMP CONVER_END_2;
EAX_NOT_0_2: XOR CL, CL;
MOV DH, '1';
MOV DL, '0';
SHIFT2: CMP EAX, 0;
JZ CONVER_END_2;
SHR EAX, 1;
JC CF_IS_1;
MOV [SI], DL;
JMP INC_SI;
CF_IS_1: MOV [SI], DH;
INC_SI: INC SI;
INC CL;
JMP SHIFT2;
CONVER_END_2: MOV DL, '$';
MOV [SI], DL;
CMP CL, 1;
JBE END2;
SHR CL, 1;
XOR CH, CH;
DEC SI;
LEA BX, NUM02;
REVER2: MOV AL, [BX];
XCHG [SI], AL;
MOV [BX], AL;
INC BX;
DEC SI;
LOOP REVER2;
END2: POPAD;
POPF;
RET;
CONVER2 ENDP
;************************************** 程序结束 *********************************************
END
QQ: 393532940
1..编语言程序上机操作方法实验
举例如下:
例1.1 比较字符串 bjchx
试编写一程序,比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘Match’,否则,显示‘No match’。
我们可以用串比较指令来完成题目所要求的功能。上机过程如下:
1. 建立asm文件
在windows系统环境下,应用写字板编辑程序建立源文件。
2. 用汇编程序MASM队源文件汇编产生目标文件.OBJ
在windows环境下,点击masm文件,而后输入.asm的文件名:
C:>MASM ABC.ASM↙
如汇编指示出错则需重新调用编辑程序修改错误, 直到汇编通过为止。如调试时需要用Lst文件,则应在汇编过程中建立该文件。
3. 用连接程序LINK产生可执行文件EXE
在windows环境下,点击link文件,而后输入*.obj的文件名:
C:>LINK ABC.OBJ↙
4. 执行程序
在windows环境下,点击*.exe文件运行程序,也可在dos的环境下执行程序如下:
C:>ABC↙
Match.
屏幕终端上显示出程序运行结果。
¨另一种调试程序的方法是使用debug程序。
2.系统操作练习
(一) 数据传送练习
将内存DATA1单元开始的0~15共16个数传送到DATA2单元开始的数据区中。
(二) 数码转换程序调试练习
将ASCII码表示的十进制数转换为二进制数。