1汇编语言发声程序CODE SEGMENT MAIN PROC FAR ASSUME CS:CODESTART:PUSH DSSUB AX,AXPUSH AXmov dx,100in al,61hand al,11111100btrig:xor al,2out 61h,almov cx,1400hdelay:loop delaydec dxjne trigRETMAIN ENDPCODE ENDSEND START没发声 2 汇编语言发声程序 CODE SEGMENT MAIN PROC FAR ASSUME CS...
far和near是子程序调用时的参数。如果子程序和调用程序在一个段内,子程序参数设置为near。如果子程序和调用程序不在一个段内,子程序参数设置为far。这里主程序定义为far是因为:系统把主程序当作DOS调用的一个子程序,DOS内核与主程序不是在同一个段地址内,所以主程序参数要用far。
MAIN PROC FAR ASSUME CS:CODESTART:PUSH DSSUB AX,AXPUSH AX;---mov al,0b6h ;向计数器写控制字.out 43h,al ;方式3、双字节写和二进制计数方式写到控制口.mov dx,12h ;设置被除数.mov ax,348chmov bx,800div bxout 42h,al ;先送LSBmov al,ahout 42h,al ;后送MSBin al,61h ;读端口原值...
main proc far assume cs:codes,ds:datas start: mov ax,datas mov ds,ax lea di,number lea si,operator show str1 show str2 show str3 show str4 show str5 show str6 mov ax,0 mov bx,0 mov cx,0 mov dx,0 start1: hchh input: mov ah,1 int 21h cmp al,'=' je let0 cmp al,1bh...
汇编语言将光标移动到指定的位置可以调用BIOS中断INT 10h,输出显示可以调用DOS功能INT 21H。程序示例如下:data segment Total db '中国龙$'data endscode segment assume cs:code,ds:datamain proc far start: mov ax,data mov ds,ax mov ah,02h mov dx,0A10h;设定光标到...
main proc far ;主程序 assume cs:prognam,ds :datarea start: ;程序起始执行地址 ;为程序返回DOS设置堆栈值 push ds ;入栈保存原DS段址 sub ax,ax ;设置偏移地址为0 push ax ;入栈保存偏移地址 ;置DS寄存器为当前数据段 mov ax,datarea ;datarea段地址 ...
MAIN PROC FAR ASSUME CS:CODE1,DS:PARM,SS:STACK START: PUSH DS SUB AX,AX PUSH AX MOV AX,PARM MOV DS,AX CALL PROADD RET PROADD PROC NEAR PUSH CX MOV SI,OFFST ARY XOR AX,AX NEXT: ADD AX,[SI] ADD SI,2 LOOP NEXT RET PROADD ENDP MAIN ENDP CODE ENDS END SART 7.11 子程序的参...
MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DSEG MOV DS, AX ;给DS赋值 BEGIN: MOV AH, 1 ;从键盘输入的歌曲编号1~5 INT 21H CMP AL, 0DH JZ EXIT ;是回车符,则结束 SUB AL, ‘1’ ;是1~5吗?
main proc start: mov ax,stack mov ss,ax mov sp,16 mov ax,1000 call far ptr subp ;子程序的名称也就是子程序第一条指令的地址 mov ax,4c00h int 21h main endp subp proc s: add ax,ax ret subp endp code ends end start 1.
首先把这些数值累加起来,除以这些数据的数量 比如 add ax,49 假设数量是8个 mov bx,8 div bx 其结果就在AX中 stack segment stack dw 256 dup(?)stack ends data segment buf db 4,4,6,6 ;要求平均的四个数字 data ends code segment main proc far assume cs:code,ds:data,ss:stack ...