
你说的代码应该是指源代码吧,就是计算机语言在编译前的人工代码,一通过一些编译器如Turbo C++或visual C++这样的编译器编译以后,就会生成一个可执行文件exe
这个文件里面的应该是16进制代码,也就是机器语言代码
这是我们看不懂的
而人工代码(源代码)是我们能看明白的
用反汇编器生成的代码叫做反汇编代码
向 MOV 等就是反汇编代码
; 输入的五位数字,第一位为符号位,当符号位为0时为正数,否则为负数
; 后四位为参数计算的数字,输出结果同上
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
input1 db 'Input first number! ','$'
input2 db 'Input second number! ','$'
result db 'result is : ','$'
; 21号中断10号例程,存放输入数据
add1 db 6 ; 缓冲区最大容量
db ; 实际上接收字符的个数,不包括最后的回车
db 6 dup () ; 存放输入的字符,回车结尾
add2 db 6
db
db 6 dup ()
num dw ; 存放中间结果
sign db ; 两个数和的符号位
sum dw 10 dup () ; 两个数的和
datasg ends
stacksg segment
stacksg ends
codesg segment
start: mov ax,datasg
mov ds,ax
lea dx,input1
mov ah,9
int 21h
; 读取第一个加数
mov dx,offset add1
mov ah,10
int 21h
; 取光标位置,ah为行,al为列
mov ah,3
mov bh,0
int 10h
; 设置光标位置
mov ah,2
mov bh,0
inc dh
mov dl,0
int 10h
lea dx,input2
mov ah,9
int 21h
; 读取第二个加数
mov dx,offset add2
mov ah,10
int 21h
; 取光标位置,ah为行,al为列
mov ah,3
mov bh,0
int 10h
; 设置光标位置
mov ah,2
mov bh,0
inc dh
mov dl,0
int 10h
lea bx,add1
mov ax,[bx+1]
mov ah,0
dec ax ; 除去符号位,得到数字个数
push ax ; 压入字符数量
add bx,3
push bx ; 压入字符串首地址
call DeciToBina
lea bx,add1
mov dl,[bx+2] ; 取输入的数字的符号位
cmp dl,'0'
jz posi1
neg ax ; 符号位不为0,则表示负数,所以求补得到负数
posi1:
lea bx,num
mov [bx],ax ; 保存第一个数
lea bx,add2
mov ax,[bx+1]
mov ah,0
dec ax
push ax ; 压入字符数量
add bx,3
push bx ; 压入字符串首地址
call DeciToBina
lea bx,add2
mov dl,[bx+2]
cmp dl,'0'
jz posi2
neg ax
posi2:
lea bx,num
add [bx],ax ; 保存两个数相加的结果
lea dx,result
mov ah,9
int 21h
lea bx,num
mov ax,[bx] ; 取出两个数的和
push ax ; 保存一个备份
; 测试结果的符号位
and ax,1000000000000000b ; 取最高位
neg ax
sbb ax,ax
neg ax ; ax的值是0或1
add ax,30h ; 转为0或1的ascii码
lea bx,sign
mov [bx],al ; 存入符号位
pop ax ; 取出备份
cmp byte ptr [bx],30h ; 测试结果是否为正数
jz posi
neg ax ; 不为正,则求补取绝对值
posi:
push ax ; 压入第二个参数,即待转换的十六进制数的绝对值
lea di,sum
push di ; 压入第一个参数,接收结果的缓冲区
call BinaToDeci
lea dx,sign
mov ah,9
int 21h
mov ax,4c00h
int 21h
;
; 作用:将十六进制数,转为十进制字符,用以输出
; 形式:void BinaToDeci( [buff], int ),从右向左依次压入堆栈
; 参数1:第一个参数 [buff]:接收结果的缓冲区地址
; 参数2:第二个参数int :待转换的十六进制数字
; 返回值:无,直接保存到内存中
;
BinaToDeci proc
push bp
mov bp,sp
push ax
push bx
push cx
push dx
mov cx,0 ; 初始化计数器,记录循环次数,即十进制数的位数
mov ax,[bp+6] ; 取出传入的待转换十六进制数,段内调用只加6,段间调用加8
; 计算出十进制各位数字,并保存到堆栈
bina_next:
xor dx,dx
mov bx,10
div bx
push dx
inc cx
cmp ax,0
jz bina_end
jmp bina_next
bina_end:
mov bx,[bp+4] ; 取出保存十进制数的缓冲区首地址
; 将十进制的各个位数转换成ascii码,并存入指定的内存区域
bina_next2:
pop ax
add ax,30h
mov byte ptr [bx],al
inc bx
loop bina_next2
; 字符串以'$'结尾,用以调用21号中段的9号例程
mov byte ptr [bx],'$'
pop dx
pop cx
pop bx
pop ax
mov sp,bp
pop bp
ret 4
BinaToDeci endp
;
;
; 作用:将十进制字符,转换为十六进制数,用以计算
; 形式:void DeciToBina( [buff], int ),从右向左依次压入堆栈
; 参数1:第一个参数 [buff]:放置十进制数字字符串的缓冲区的首地址
; 参数2:第二个参数int :十进制字符串的字符个数
; 返回值:十六进制的数字
;
DeciToBina proc
push bp
mov bp,sp
push bx
push cx
push dx
push si
mov bx,[bp+4] ; 取放置十进制字符串缓冲区的首地址
mov cx,[bp+6] ; 十进制数字字符串的字符个数
xor ax,ax
; 将ascii码还原为数字,并保存到堆栈
deci_next:
mov al,byte ptr [bx] ; 依次取缓冲区内的字符
sub al,30h
push ax
inc bx
loop deci_next
mov cx,[bp+6] ; 再次获得字符的个数
xor ax,ax
xor dx,dx
mov bx,1 ; 用作乘数
xor si,si
; 各位相乘然后累加获得十六进制数值
; 结果=个位1+十位10+百位100+千位1000
deci_next1:
pop ax ; 取出数字
mul bx ; 相乘
add si,ax ; 累加结果
; 计算下次相乘时的乘数
mov ax,bx
mov bx,10
mul bx
mov bx,ax
loop deci_next1
; 将结果存入ax,为返回值
mov ax,si
pop si
pop dx
pop cx
pop bx
mov sp,bp
pop bp
ret 4
DeciToBina endp
;
codesg ends
end start
=====================================================
masm5测试通过
private void Shield(KeyPressEventArgs e)
{
if (thistxtCountReadOnly) // 只读, 不处理
return;
if ((int)eKeyChar < 32) // 特殊键(不含空格), 不处理
{
return;
}
if ((int)eKeyChar == 32) // 空格,放弃该输入
{
eHandled = true;
return;
}
if (!charIsDigit(eKeyChar)) // 非数字键, 放弃该输入
{
eHandled = true;
return;
}
}
这是一个只接受数字键的例子你可以参考一下 就用这个方法就行了 写在窗体的激活事件里面就OK了事件的名字好像是Activated这个你试下 有什么不懂的在问我
对于每个程序员来说,养成良好的代码编写方法是非常关键的。在编写代码的过程中,每个人的方法是不同的,那么应该如何规范自己代码编写的方法呢?规范编写代码有哪些要求呢?下面电脑培训带大家认识代码编写的方法。
一、保证代码压缩后不会出错
对于大的JavaScript项目,一般来说,包含在项目中的所有JavaScript文件在产品公开时都会被压缩。为了正确压缩代码,通常需要考虑压缩工具的必要条件,如句子用分号正常结束,中括号结束等。因此,IT培训发现当编写代码没有按照标准进行时,在发生压缩错误后再次寻找错误是浪费时间的。
二、保证代码能够通过自动格式化功能
一般情况下需要使用完善的开发工具进行自动化格式功能,这个功能能够进行换行、缩进和空格等方法的代码编排,并且还可以设置自己喜欢的格式。别人在阅读你的代码时需要使用IDE进行格式转换,以满足个人的阅读风格。北京北大青鸟认为阅读代码能够更加深入的了解代码调用和细节的实现,这是简单的文档不能实现的。
三、使用标准的文档注释
这是编写代码中最基本的要求,能够很好的了解代码的提示,并且还可以利用配套的文档工具生产其他格式让别人阅读。北大青鸟认为编写完整的注释还可以使团队成员更容易阅读您的代码。通过您的参数描述,团队成员很容易了解您想要传递参与实现细节和编写的方法。
先获取开始菜单的句柄,(告诉你,就是00030072)
然后,在timer控件里写代码,用SetWindowPos把你准备的开始菜单show到系统的那个地方,其他的就好说了,关键是,你用手机提问,只能输入这点字……初学VB的话,难
去网站程序管理后台,找到首页default文件,点编辑进入后把关键词(KeyWords),描述(Description)代码修改好加入到title下
<HEAD>
<TITLE>在这里添加网站的名称一句话带过,简单明了即可</TITLE>
<META
name="keywords"
content="代码,参数,字符,个数,缓冲区">
<META
name="description"
content="你说的代码应该是指源代码吧,就是计算机语言在编译前的人工代码,一通过一些编译器如Turbo C++或visual C++这样的编译器编译以后,就会生成一个可执行文件exe这个文件里面的应该是16进制代码,也就是机器语言代码这是我们看不懂的而">
</HEAD>
以上就是关于什么是程序代码全部的内容,包括:什么是程序代码、汇编语言,最好写出整个程序代码,关键在于两个子程序的代码,一定要带注释!!!谢!高分求、C#开发的winform程序,我想在程序运行开始直到程序终止,都禁用键盘的左右windows徽标键,(关键)代码怎等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)