mov ax,4c00h int 21h 汇编结束必须加这两句话吗?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 23:58:47

mov ax,4c00h int 21h 汇编结束必须加这两句话吗?
mov ax,4c00h int 21h 汇编结束必须加这两句话吗?

mov ax,4c00h int 21h 汇编结束必须加这两句话吗?
一般来讲,DOS程序结束有三种方法
一,是用int 20h 来终止程序,但有条件,在结束时cs必须跟程序开始时一致,否则要死机.在DOS中常用于*.com文件.
二,是用ret来终止程序,如下:
...
code segment
start proc far ;注意,这里有 far,表示是远调用,主要影响ret指令,编译后为RETF
push cs
mov ax,0
push ax
.
.;应用户程序
.
ret ;返回DOS
start endp
ends
end start
应用这种退出机制,千万注意堆栈一个都不能错,否则死机.在DOS中常用于*.exe文件.
三,就是你提到的
mov ax,4c00h
int 21h
用它返回是不需任何条件,还可顺便帮你关闭你打开后忘记关闭的文件.并返回寄存器al的值.在DOS中可用于*.com或*.exe文件.
具体来说:
DOS系统提供给用户很多应用,比如文件读写、时间读写,显示等等.int 21h是DOS系统的系统调用的入口,ah为功能号,就是本问题中的4c,比如
mov ah,9
mov dl,‘a'
int 21h
表示要在屏幕上显示英文字母a
本问题中mov ax,4c00h表明应用程序要退出,并为调用本程序的程序返回00,传递退出信息.
ax取值范围是4c00h---4cffh.

mov ax,4c00h int 21h 汇编结束必须加这两句话吗? 程序开头push ds mov ax,0 push ax 这我知道,那开头为什么要用这程序,用这就不用MOV AH,4CH INT 20H吗 求下面程序每步的说明DATA SEGMENT LIST DB 10,,10 DUP($)X DB DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX ,DATA MOV DS ,AX LEA DX,LISTMOV AH,0AHINT 21H ; 输入字符串MOV DL,10MOV AH,2INT 21H ;回车换行MOV AH,01HINT 21H ; MOV AX,468AH MOV SI,1357H MOV [SI],AX MOV CL,4 SHR BYTE PTR[SI],CL SHL WORD PTR[SI],1 MOV AX,[SI] SUB AL,07H 有什么用?DATA SEGMENT NUM DB ,SUM DB DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV CX,2 LEA SI,NUMS0:MOV AH,01H INT 21H CMP AL,'9' JBE NEXT SUB AL,07H -->有什么作用?NEXT:SUB AL,30H -->有什么作用? 1.CMP CX,0000H2 .OUT 21H,AL3.STI4.HLT5.JMP A16.INT 10H7.MOV AX,0120H8.INT 10H9.DEC CX10.MOV AL,20H11.OUT 20H,AL12.CLI13.IRET MOV AX,2000H MOW DS,AX MOC CL,4 MOV SI,2000H MOV AL,[SI+1] SI是多少? MOV AX,ES:[2000H] 求下列汇编语句的解释mov ax 3509int 21 求下列汇编语句的解释MOV ax 3509int 21 已知,ds=2100H,bx=234H,SI=02,物理地址为21234H-21239H单元的内容分别为12H,24H,38H,89h,6AH,2ch.求下列每条指令后执行的ax内容为多少MOV AX,2100H;AX=请用十六进制表示mov ax [236H]; AX=MOV AX BX ; AX=MOV AX 4[BX]; AX=MOV MOV AX,ES:[2000H] 是什么意思 1.MOV [BX],SI 2.MOV CX,AX 3.LEA BL,A 4.MOV BL,200H 5.LEA DI,A[SI] MOV AX,2000H和MOV AX,DS[2000H]的区别是什么? 试写出下列源操作数的寻址方式及物理地址设(DS)=6000H,(ES)=7000H,(SS)=8000H,(BX)=0100H,(BP)=0200H,(SI)=0300H,变量VAL的偏移地址值为0900H(1)MOV AX,[0200H](2)MOV AX,[BX+20H](3)MOV AX,VAL[BX](4)MOV AX,VAL[BP][SI](5) MOV 写出每条汇编指令执行后,相关寄存器中的值 mov ax,62627 AX= mov ah,31h AX= mov al,23h AX= add ax,axmov ax,62627 AX= mov ah,31h AX= mov al,23h AX= add ax,ax AX=mov bx,826ch AX=mov cx,ax AX=mov ax,bx A=add ax,bx A=mov al,bh A=add ah,ah 13.已知(DS)=1000H,(SS)=0F00H,(BX=0010H,要使下列指令的原操作数指向同一个物理地址10320H,写出下列指令中寄存器BP,SI,DI和位移量X的值.(1)MOV AX,[SI] (2)MOV AX,[BP](3)MOV AX,[BX+DI](4)MOV AX,X[ 1.假设寄存器AX=1234H,DX=0A000H MOV BX,0MOV CX,BXSUB CX,AXSBB BX,DXMOV AX,CXMOV DX,BX上述程序段执行后AX=___0EDCCH____ ,DX=__5FFFH_____2.MOV AX,234HMOV CL,3ROL AX,CLDEC AX MOV CX,4MUL CX此段程序执行完后,(AX)= ___467CH____ ,(CX)= __