有请汇编高手

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:55:54
DATA SEGMENT
A1 DW 1234H
DB 56,56H,"ABCD"
DATA ENDS
EXTRA SEGMENT
B1 DB 1,2,3,4,5
EXTRA ENDS
STACK SEGMENT
BTM DB 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV SP,SIZE BTM
MOV AX,A1+1
MOV BP,OFFSET A1
MOV AX,[BP]
MOV AX,DS:[BP]
MOV AX,ES:[BP]
MOV BX,OFFSET A1
MOV AX,[BX+3]
MOV AX,ES:[BX+3]
PUSH

C语言嵌入汇编
在C程序中允许直接编写汇编语言代码,这称作嵌入汇编。C程序中嵌入汇编后可以无分号(C语言的语句以分号结束,汇编语句是C语言中唯一以换行结束的语句),以关键词ASM张一个嵌入汇编指令,如需多个ASM语句,可以将它们放在花括号内。如,
ASMMOVAX,DX/ 注释 /
ASM
PUSHAX}/ 注释 /

C语言允许嵌入四类汇编命令:一般指令、串指令、跳转指令、数据分配和定义指令,嵌入汇编比调用汇编子程序更方便、灵活、功能也更强。但嵌入汇编不是一个完整的汇编程序,所以许多错误不能马上检查出来。

数据分配和定义指令