本站首页    管理页面    写新日志    退出

首页(62) 网络(0) Photoshop(0) ASP语言(8) 汇编程序(6) 智力问答(NEW)!!!(42) 学英语从单词开始搞定(2) Linux(0) 


加入智力问答,难度会越来越大,也会越来越有趣哦,大家踊跃参与!!!!


 
♀News&Date
chm文件DIY
各国语言的"我爱你",送给天下有情人
寻找---想做投资理财的朋友
7000单词,第二贴
easy搞定7000个单词,跟我一起享受
谁做出来告诉我!!谢谢
数字解码
分金条
盲人分袜子
是一家外企招聘部分试题,有兴趣的试一下
«February 2026»
1234567
891011121314
15161718192021
22232425262728
 
 
[汇编程序]键盘上输入两个一位十进制数字,并将其转换成二进制数,再将它们相减后以两位十进制数字的形式输出结果
;------------------------------------------------------------------------------------------------;键盘上输入两个一位十进制数字,并将其转换成二进制数,再将它们相减后以两位十进制数字的形式输出结果;------------------------------------------------------------------------------------------------ ;注:本程序中必须要有"push ax","pop ax"两条语句,不然程序虽然可以编译链接,但执行两数相减后会发生未知;错误,通过用debug进行跟踪反汇编后发现问题出在mov dl,'='这条语句,ax的值发生了变化,所以需要把ax值进;行恢复,因此要用此两条语句 code segment                      ;代码段     assume cs:code,ds:codestart:      mov ax,code                 ;ax-->ds      mov ds,ax      mov ah,01h                  ;调用中断21的01号功能,从键盘接收一个数字并回显,键入第一个0~9数字→al      int 21h      mov bl,al                         mov dl,'-'                  ;显示'-'      mov ah,02h      int 21h      mov ah,01h                  ;键入第二个0~9数字→al      int 21h      push ax                     ;将ax的值压入堆栈      mov dl,'='                  ;显示'='      mov ah,02h      int 21h      pop ax                      ;弹出ax      cmp bl,al                   ;比较输入的两个数的大小      jl fushu                    ;若bl<al,则跳到fushu段执行      sub bl,al                   ;bl-al      mov dl,'+'                  ;'+'-->dl      jmp show                    ;跳到show段进行执行fushu:sub al,bl                   ;al-bl      mov bl,al                         xchg bl,al                  ;交换bl,al的地址      mov dl,'-'                  ;'-'-->dlshow: mov ah,02h                  ;显示字符      int 21h      add bl,30h                  ;转换成ASCll码      mov dl,bl      int 21h      mov ah,4ch                  ;程序结束      int 21hcode ends     end start
syerboxer 发表于 2005/4/10 17:39:07

阅读全文(7275) | 回复(1) | 编辑 | 精华


 
不知哪里出错了,运行了就死机请指教
;  两个数相乘 5位数乘以1位数(十进制)。X*Y->ZSTACK   SEGMENT STACK        DB  200 DUP(?)STACK   ENDSDATA    SEGMENTx       DB 5 DUP(0),'$'Y       DB 1 DUP(0),'$'Z       DB 6 DUP(0),'$'DATA1   DB 'INPUT A MULTIPLICAND $'DATA2   DB 'INPUT A MULTIPLIER $'DISP DB 'Result is $'CR      DB 0DH,0AH,'$'DATA    ENDSCODE    SEGMENT        ASSUME  CS:CODE,SS:STACK,DS:DATABEGIN:  MOV     AX,DATA        MOV     DS,AX MOV ES,AX        LEA     DX,DATA1        MOV     AH,5        INT     21H        MOV     AH,1        MOV     X,AL        LEA     DX,DATA2        MOV     AH,1        INT     21H        MOV     AH,1        MOV     Y,AL  MOV     BL,Y    ;乘数的ASCII码送BL中 AND BL,0FH ;转换为BCD码  LEA SI,X+4 LEA DI,Z+5 MOV CX,5MLOP: MOV AL,[SI] AND AL,0FH MUL BL AAM ADD AL,[DI] AAA      MOV [DI],AL DEC DI MOV [DI],AH DEC SI LOOP MLOP  LEA DX,X MOV AH,9 INT 21H MOV DL,'*' MOV AH,2 INT 21H MOV DL,Y MOV AH,2 INT 21H         LEA SI,Z MOV CX,6TOASC: OR BYTE PTR [SI],30H        INC     SI LOOP TOASC LEA DX,DISP MOV AH,9 INT 21H LEA DX,Z         MOV     AH,9 INT 21H          MOV     AH,4CH  ;返回系统        INT     21HCODE    ENDS        END     BEGIN
ROCKZHONG发表评论于2005/4/24 0:08:05

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 
♀Links


♀Comment&Login
回复:数字解码
回复:数字解码
回复:数字解码
回复:数字解码
回复:数字解码
回复:你会被处死吗?
回复:数字解码
回复:数字解码
回复:数字解码
回复:数字解码
用户名称:
登陆密码:
密码保存:




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.535 second(s), page refreshed 144819862 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号