×

汇编器是如何写的

汇编器是如何写的(汇编语言程序该怎么写)

admin admin 发表于2024-07-15 10:55:51 浏览12 评论0

抢沙发发表评论

大家好,关于汇编器是如何写的很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于汇编语言程序该怎么写的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

汇编语言程序该怎么写

code  segment      assume cs:code      org 100hstart:jmp beginx     dw 11,12,13,14,15,16,17,18,19,20y     dw 1,2,-3,-4,5,-6,-7,-8,9,10sign  dw 1,1,0,0,1,0,0,0,1,1;      1表示加, 0 表示减z     dw 10 dup(?)begin:push cs      pop ds      push cs      pop es      mov cx,10      cld      lea si,x      lea di,z@main:      mov ax,      cmp word ptr,0      je @main1      add ax,      mov ,ax      jmp @main2@main1:      sub ax,      mov ,ax@main2:      inc si      inc si      inc di      inc di      loop @main            lea si,z      mov cx,10      cld@main3:      lodsw      call dispaxs      loop @main3            mov ah,4ch      int 21h;========================================= ; 将要显示的有符号数置于 ax 中     DISPAXS  PROC      NEAR              PUSH      AX              PUSH      BX              PUSH      CX              PUSH      DX              PUSH      SI              PUSH      DI              PUSH      BP              PUSH      DS              PUSH      ES              PUSHF              PUSH      CS              POP       DS              PUSH      CS              POP       ES              MOV       CX,6              LEA       DI,DISPAXSS   @DISPAXS:              MOV       BYTE PTR ,32              INC       DI              LOOP      @DISPAXS              PUSH      AX              MOV       DL,32              MOV       AH,2              INT       21H              POP       AX              MOV       BYTE PTR NZS,0              MOV       BYTE PTR SIGNS,0              CMP       AX,0              JGE       @DISPAXS0              MOV       BYTE PTR SIGNS,1              NEG       AX  @DISPAXS0:              PUSH      AX              LEA       SI,DIVARRS              LEA       DI,DISPAXSS              INC       DI              MOV       CX,5  @DISPAXS1:              POP       AX              MOV       DX,0              MOV       BX,              DIV       BX              PUSH      DX              CMP       AL,0              JNE       @DISPAXS2              CMP       BYTE PTR NZS,1              JE        @DISPAXS2              CMP       CX,1              JE        @DISPAXS2              MOV       DL,20H              JMP       @DISPAXS3  @DISPAXS2:              ADD       AL,30H              MOV       DL,AL              MOV       BYTE PTR NZS,1  @DISPAXS3:              MOV       BYTE PTR,DL              INC       SI              INC       SI              INC       DI              LOOP      @DISPAXS1              POP       DX              CMP       BYTE PTR SIGNS,1              JNE       @DISPAXS6              LEA       SI,DISPAXSS              ADD       SI,5  @DISPAXS4:              CMP       BYTE PTR ,32              JE        @DISPAXS5              DEC       SI              JMP       @DISPAXS4  @DISPAXS5:              MOV       BYTE PTR ,’-’  @DISPAXS6:              LEA       DX,DISPAXSS              MOV       AH,9              INT       21H              POPF              POP       ES              POP       DS              POP       BP              POP       DI              POP       SI              POP       DX              POP       CX              POP       BX              POP       AX              RET     DIVARRS  DW        10000,1000,100,10,1         NZS  DB        0       SIGNS  DB        0    DISPAXSS  DB        32,32,32,32,32,32,’$’     DISPAXS  ENDP;==================================      code  ends      end start

怎么使用visual studio 2010编写汇编语言程序

使用内联汇编写 ,它的格式有两种,一种是__asm 直接接汇编指令语句,比如,__asm xor eax, eax //清零eax另一种是加上花括号,类似于一个函数,比如__asm { mov eax, 1 ;1到eax mov ebx, 2 ;2到ebx add eax, ebx ;eax 和ebx相加}使用内联汇编有个好处可以直接使用C/C++中的变量 ,比如int a = 2;__asm mov a, 2 //可以使用变量,只有一条另外使用内联汇编最需要注意的是数组。比如 int a = {1,2} ; 不可以直接 __asm{mov a, 1mov a, 2}这样是错误的, 需要 mov a,2 为什么是4呢?因为内联汇编转换后是数组a的地址偏移,而不是序号。vc中的内联汇编 简单的很, 要是在linux中使用内联汇编,费了劲了。。没事欢迎到 百度 0x30 贴吧 分享一下C/C++的心得,或者加入百度知道 0x30 团队,帮助别人的时候,自己 也可以学到东西 。。

关于汇编器是如何写的,汇编语言程序该怎么写的介绍到此结束,希望对大家有所帮助。